<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Habanero.DB</name>
    </assembly>
    <members>
        <member name="T:Habanero.DB.TransactionalBusinessObjectDB">
            <summary>
             Utility class that wraps the business object and implements a database persistance strategy for the business object.
             This class is used with allong with the Transaction Committer to implement transactional support
             for multiple business objects.
            </summary>
        </member>
        <member name="M:Habanero.DB.TransactionalBusinessObjectDB.#ctor(Habanero.Base.IBusinessObject,Habanero.Base.IDatabaseConnection)">
            <summary>
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.DB.TransactionalBusinessObjectDB.GetPersistSql">
            <summary>
             Returns the appropriate sql statement collection depending on the state of the object.
             E.g. Update SQL, InsertSQL or DeleteSQL.
            </summary>
        </member>
        <member name="M:Habanero.DB.TransactionalBusinessObjectDB.GetInsertSql">
            <summary>
            Returns an "insert" sql statement list for inserting this object
            </summary>
            <returns>Returns a collection of sql statements</returns>
        </member>
        <member name="M:Habanero.DB.TransactionalBusinessObjectDB.GetDeleteSql">
            <summary>
            Builds a "delete" sql statement list for this object
            </summary>
            <returns>Returns a collection of sql statements</returns>
        </member>
        <member name="M:Habanero.DB.TransactionalBusinessObjectDB.GetUpdateSql">
            <summary>
            Returns an "update" sql statement list for updating this object
            </summary>
            <returns>Returns a collection of sql statements</returns>
        </member>
        <member name="T:Habanero.DB.ConnectionStringOracleFactory">
            <summary>
            Produces connection strings that are tailored for the Oracle database
            </summary>
        </member>
        <member name="T:Habanero.DB.ConnectionStringFactory">
            <summary>
            A super-class for a factory that produces connection strings for
            different database vendors
            </summary>
        </member>
        <member name="M:Habanero.DB.ConnectionStringFactory.GetConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Returns a connection string built from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
        </member>
        <member name="M:Habanero.DB.ConnectionStringFactory.CheckArguments(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Checks that each of the arguments provided are valid
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
        </member>
        <member name="M:Habanero.DB.ConnectionStringFactory.CreateConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a connection string from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
        </member>
        <member name="M:Habanero.DB.ConnectionStringOracleFactory.CheckArguments(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Checks that each of the arguments provided are valid
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
        </member>
        <member name="M:Habanero.DB.ConnectionStringOracleFactory.CreateConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a connection string from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
            <exception cref="T:System.ArgumentException">Thrown if any of the
            arguments provided are invalid</exception>
        </member>
        <member name="T:Habanero.Base.CriteriaDB">
            <summary>
             This class inherits from the <see cref="T:Habanero.Base.Criteria"/> class and implements a
             <see cref="!:ToString(SqlFormatter, AddParameterDelegate)"/> behaviour.
             This allows the formatting of a criteria object into a format specific for the database.
            </summary>
        </member>
        <member name="M:Habanero.Base.CriteriaDB.#ctor(Habanero.Base.Criteria)">
            <summary>
             Constructor for a Database critieria. takes the Criteria object that it wraps as a parameter.
            </summary>
            <param name="criteria">The criteria object being wrapped.</param>
        </member>
        <member name="M:Habanero.Base.CriteriaDB.ToString">
            <summary>
            Returns a <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            A <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.Base.CriteriaDB.ToString(Habanero.Base.ISqlFormatter,Habanero.Base.CriteriaDB.AddParameterDelegate)">
            <summary>
            Converts this Criteria object to a string, using field names instead of property names and entity names instead of
            source names. The <see cref="T:Habanero.Base.CriteriaDB.AddParameterDelegate"/> allows a database query builder to create a parameter value
            when adding the value to the string for use with parametrized SQL.  Also see <see cref="T:Habanero.Base.ISqlStatement"/>.
            
            The <see cref="M:Habanero.Base.CriteriaDB.ToString"/> method uses this method with a simple delegate that converts DateTimes and Guids 
            to sensible string representations and to 
            </summary>
            See <see cref="T:Habanero.Base.CriteriaDB.PropNameConverterDelegate"/>
            <param name="formatter">A formatter for any specific database <see cref="T:Habanero.Base.SqlFormatter"/></param>
            <param name="addParameter">The delegate to use to convert the value in object form to a value in string form. 
            See <see cref="T:Habanero.Base.CriteriaDB.AddParameterDelegate"/></param>
            <returns>The Criteria in string form.</returns>
        </member>
        <member name="P:Habanero.Base.CriteriaDB.Field">
            <summary>
             Gets the query Field being used by this criteria object (Where the criteria object is a leaf).
             the query field is a query field object representing the objects property as defined in the 
             Constructor [Criteria(string propName, ComparisonOp op, object value)].
            </summary>
        </member>
        <member name="P:Habanero.Base.CriteriaDB.LeftCriteria">
            <summary>
             Gets the left critieria object (If this is not a leaf criteria)
            </summary>
        </member>
        <member name="P:Habanero.Base.CriteriaDB.LogicalOperator">
            <summary>
             Gets the logical operator being used for this criteria object (If this is not a leaf criteria)
            </summary>
        </member>
        <member name="P:Habanero.Base.CriteriaDB.RightCriteria">
            <summary>
             Gets the right criteria object (If this is not a leaf criteria)
            </summary>
        </member>
        <member name="P:Habanero.Base.CriteriaDB.FieldValue">
            <summary>
             Gets or sets the field value being compared to for this criteria object (If this is a leaf criteria)
            </summary>
        </member>
        <member name="P:Habanero.Base.CriteriaDB.ComparisonOperator">
            <summary>
             Gets the comparison operator being used by this Criteria object (If this is a leaf criteria)
            </summary>
        </member>
        <member name="T:Habanero.Base.CriteriaDB.AddParameterDelegate">
            <summary>
            For details of what this delegate is used for, see <see cref="T:Habanero.Base.CriteriaDB.PropNameConverterDelegate"/>
            
            This delegate is designed to format a value of a criteria into a datasource equivalent. For example, in a database context,
            this delegate might be used to return a parameter name and store the parameter value so that the criteria can be used as part
            of a where clause in a parametrized SQL statement.
            </summary>
            <param name="parameterValue">The value of the criteria given, as an object. </param>
            <returns>The string format of this criteria to append to the string.</returns>
        </member>
        <member name="T:Habanero.Base.CriteriaDB.PropNameConverterDelegate">
            <summary>
             When converting the Criteria expression to a string there are contexts that must be taken into account. The default implementation
             (<see cref="M:Habanero.Base.Criteria.ToString"/>) will not do any conversions of property names or values given other than to convert
             DateTimes and Guids to sensible, universal string equivalents (see <see cref="F:Habanero.Base.Criteria.DATE_FORMAT"/>).
             
             This delegate is designed to map a property name to a datasource name (such as to a field name on table).
            </summary>
            <param name="propName">The property name to map to the datasource equivalent</param>
             <returns>The mapped property name ie the datasource equivalent of the property name (perhaps the field name on a database table)</returns>
        </member>
        <member name="T:Habanero.DB.SqlStatement">
            <summary>
            Manages a sql statement
            </summary>
        </member>
        <member name="M:Habanero.DB.SqlStatement.#ctor(Habanero.Base.IDatabaseConnection)">
            <summary>
            Constructor to initialise a new sql statement
            </summary>
            <param name="connection">A database connection</param>
        </member>
        <member name="M:Habanero.DB.SqlStatement.#ctor(Habanero.Base.IDatabaseConnection,System.String)">
            <summary>
            Constructor to initialise a new sql statement using the existing
            statement provided
            </summary>
            <param name="connection">A database connection</param>
            <param name="statement">An existing sql statement</param>
        </member>
        <member name="M:Habanero.DB.SqlStatement.AddParameter(System.String,System.Object)">
            <summary>
            Adds a parameter value
            </summary>
            <param name="paramName">The parameter name</param>
            <param name="paramValue">The value to assign</param>
            <returns>Returns an IDbDataParameter object</returns>
        </member>
        <member name="M:Habanero.DB.SqlStatement.SetupCommand(System.Data.IDbCommand)">
            <summary>
            Sets up the IDbCommand object
            </summary>
            <param name="command">The command</param>
        </member>
        <member name="M:Habanero.DB.SqlStatement.ToString">
            <summary>
            Returns a string describing the sql statement and its parameters.
            This string cannot be used directly as a sql statement on its own.
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.DB.SqlStatement.AddParameterToStatement(System.Object)">
            <summary>
            Adds a parameter to the sql statement
            </summary>
            <param name="obj">The parameter to add</param>
        </member>
        <member name="M:Habanero.DB.SqlStatement.GetHashCode">
            <summary>
            Returns a hashcode calculation from the sql statement string
            </summary>
            <returns>Returns a hashcode</returns>
        </member>
        <member name="M:Habanero.DB.SqlStatement.DoAfterExecute(Habanero.DB.DatabaseConnection,System.Data.IDbTransaction,System.Data.IDbCommand)">
            <summary>
            Carries out instructions after execution of the sql statement
            </summary>
        </member>
        <member name="M:Habanero.DB.SqlStatement.Equals(System.Object)">
            <summary>
            Indicates whether this sql statement instance is equal in
            content to the one specified
            </summary>
            <param name="obj">The sql statement object to compare with</param>
            <returns>Returns true if equal</returns>
        </member>
        <member name="P:Habanero.DB.SqlStatement.Statement">
            <summary>
            Gets and sets the sql statement
            </summary>
        </member>
        <member name="P:Habanero.DB.SqlStatement.Parameters">
            <summary>
            Returns a list of parameters
            </summary>
        </member>
        <member name="P:Habanero.DB.SqlStatement.ParameterNameGenerator">
            <summary>
            Returns the parameter name generator
            </summary>
            <returns>Returns a ParameterNameGenerator object</returns>
        </member>
        <member name="P:Habanero.DB.SqlStatement.Connection">
            <summary>
            Gets the database connection provided upon
            instantiation of this sql statement
            </summary>
        </member>
        <member name="T:Habanero.DB.DatabaseLookupList">
            <summary>
            Provides a lookup-list sourced from a database using the
            sql statement provided.
            A lookup-list is typically used to populate features like a ComboBox,
            where the string would be displayed, but the Guid would be the
            value stored (for reasons of data integrity).
            The sql statement will need to load two fields in correct order:
            a Guid (such as the object ID or primary key) and a string.
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseLookupList.#ctor(System.String)">
            <summary>
            Constructor that specifies the sql statement
            </summary>
            <param name="statement">The sql statement used to specify which
            objects to load for the lookup-list</param>
        </member>
        <member name="M:Habanero.DB.DatabaseLookupList.#ctor(System.String,System.Int32,System.String,System.String,System.Boolean)">
            <summary>
            Constructor that specifies the sql statement, time-out period and
            the type of object represented in the lookup-list
            </summary>
            <param name="statement">The sql statement used to specify which
            objects to load for the lookup-list</param>
            <param name="timeout">The time-out period in milliseconds after
            which a fresh copy will be loaded</param>
            <param name="assemblyName">The class type assembly name.</param>
            <param name="className">The class type name.  This is the BO type that this lookup list is referring to</param>
            <param name="limitToList">Whether to limit the item set to those in the list</param>
        </member>
        <member name="M:Habanero.DB.DatabaseLookupList.GetLookupList">
            <summary>
            Returns a lookup-list loaded using the sql 
            statement stored in this instance. If the
            time-out period has not expired, then the currently held list
            will be returned, otherwise a fresh one will be loaded.
            </summary>
            <returns>Returns a collection of string-Guid pairs</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseLookupList.GetLookupList(Habanero.Base.IDatabaseConnection)">
            <summary>
            Returns a lookup-list loaded using the database connection
            provided and the sql statement stored in this instance. If the
            time-out period has not expired, then the currently held list
            will be returned, otherwise a fresh one will be loaded.
            </summary>
            <param name="connection">The database connection</param>
            <returns>Returns a collection of string-Guid pairs</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseLookupList.GetAvailableDisplayValue(System.String)">
            <summary>
             Returns a unique display value for an item of the given name, so that it can be added to the list without the risk of having duplicate entries.
            </summary>
            <param name="stringValue">The new value to determine a display value for</param>
            <returns>Returns a unique display value for an item of the given name.</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseLookupList.GetIDValueLookupList">
             <summary>
             Returns the lookup list contents being held where the list is keyed on the list key 
              either a Guid, int or Business object i.e. the value being stored for the property.
             The display value can be looked up.
             </summary>
            <returns>The Key Value Lookup List</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseLookupList.GetLookupList(Habanero.BO.BusinessObject)">
            <summary>
            Returns a lookup-list loaded using the sql statement stored in 
            this instance. The database connection used is the
            one associated with the business object provided. If the
            time-out period has not expired, then the currently held list
            will be returned, otherwise a fresh one will be loaded.
            </summary>
            <param name="bo">A business object with attached database
            connection</param>
            <returns>Returns a collection of string-Guid pairs</returns>
        </member>
        <member name="P:Habanero.DB.DatabaseLookupList.AssemblyName">
            <summary>
            Gets and sets the assembly name for the class being sourced for data
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseLookupList.ClassName">
            <summary>
            Gets and sets the class name being sourced for data
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseLookupList.SqlString">
            <summary>
            Gets the sql statement which is used to specify which
            objects to load for the lookup-list
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseLookupList.TimeOut">
            <summary>
            Gets and sets the time-out period in seconds after which a fresh
            copy will be loaded
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseLookupList.ClassDef">
            <summary>
            Gets the class definition of the lookup type
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseLookupList.PropDef">
            <summary>
             The property definition that this lookup list is for
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseLookupList.LimitToList">
            <summary>
             Returns true if the <see cref="T:Habanero.Base.ILookupList"/> should validate the value of the 
             <see cref="T:Habanero.Base.IBOProp"/> against the items in the <see cref="T:Habanero.Base.ILookupList"/>.
             Eg, if the BOProp's value is set to an
             item not in the list and this value is True, a validation error will occur upon save.  If this 
             value is set to false no validation will occur.
            </summary>
        </member>
        <member name="T:Habanero.DB.SqlStatementException">
            <summary>
            An exception thrown when an error occurred while attempting to
            construct a SQL statement
            </summary>
        </member>
        <member name="M:Habanero.DB.SqlStatementException.#ctor">
            <summary>
            Constructor to initialise a new exception
            </summary>
        </member>
        <member name="M:Habanero.DB.SqlStatementException.#ctor(System.String)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="message">The message to display</param>
        </member>
        <member name="M:Habanero.DB.SqlStatementException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="message">The message to display</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.DB.SqlStatementException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="info">Serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.DB.ParameterNameGenerator">
            <summary>
            Generates parameter names for parameterised sql statements
            </summary>
        </member>
        <member name="M:Habanero.DB.ParameterNameGenerator.#ctor(System.String)">
            <summary>Constructor. You can specify the prefix character/string the name generator should use (this varies from DBMS to DBMS)
            </summary>
            <param name="prefixCharacter">The string to start each parameter name with</param>
        </member>
        <member name="M:Habanero.DB.ParameterNameGenerator.GetNextParameterName">
            <summary>
            Generates a parameter name with the current seed value and
            increments the seed
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.DB.ParameterNameGenerator.Reset">
            <summary>
            Sets the parameter count back to zero
            </summary>
        </member>
        <member name="P:Habanero.DB.ParameterNameGenerator.PrefixCharacter">
            <summary>
            The prefix character used. For example, setting this to "?" will make parameters called "?Param0", "?Param1" etc.
            </summary>
        </member>
        <member name="T:Habanero.DB.DBMigrator">
            <summary>
            Manages database migrations that are needed to ensure that working
            copies of a project have the up-to-date database structure.<br/>
            This migrator requires access to an ISettings service that can read and write a
            a DATABASE_VERSION setting.  Since ConfigFileSettings does not have write
            support, you will either need to use DatabaseSettings or reimplement
            a settings operator.  The setting will need to be in existence before this
            operation will execute correctly.<br/>
            This class is commonly used inside an implementation of
            <see cref="T:Habanero.Base.IApplicationVersionUpgrader"/> .  See the tutorials for usage examples.
            </summary>
        </member>
        <member name="F:Habanero.DB.DBMigrator.DatabaseVersionSetting">
            <summary>
            The string for the version of the Database.
            </summary>
        </member>
        <member name="M:Habanero.DB.DBMigrator.#ctor(Habanero.Base.IDatabaseConnection)">
            <summary>
            Constructor to initialise the migrator with the connection provided
            </summary>
            <param name="connection">The database connection</param>
        </member>
        <member name="M:Habanero.DB.DBMigrator.AddMigration(System.Int32,System.String)">
            <summary>
            Adds a sql migration that can be performed
            </summary>
            <param name="number">The migration number</param>
            <param name="sql">The sql statement string to add</param>
        </member>
        <member name="M:Habanero.DB.DBMigrator.AddMigration(System.Int32,Habanero.DB.SqlStatement)">
            <summary>
            Adds a sql migration that can be performed
            </summary>
            <param name="number">The migration number</param>
            <param name="sql">The sql statement object to add</param>
        </member>
        <member name="M:Habanero.DB.DBMigrator.GetMigrationSql(System.Int32,System.Int32)">
            <summary>
            Returns a set of sql statements between two specified version numbers,
            excluding the start version and including the end version.
            </summary>
            <param name="startAfterVersion">The start version number (exclusive)</param>
            <param name="endVersion">The end version number (inclusive)</param>
            <returns>Returns a collection of sql objects</returns>
        </member>
        <member name="M:Habanero.DB.DBMigrator.GetMigration(System.Int32)">
            <summary>
            Returns the sql migration statement with the version number specified
            </summary>
            <param name="number">The version number</param>
            <returns>Returns a sql statement object, or null if not found</returns>
        </member>
        <member name="M:Habanero.DB.DBMigrator.Migrate(System.Int32,System.Int32)">
            <summary>
            Performs the migrations from after the start version up to and
            including the end version.  Updates the stored version
            number to the end version number specified.
            </summary>
            <param name="startAfterVersion">The start version (exclusive)</param>
            <param name="endVersion">The end version (inclusive)</param>
        </member>
        <member name="M:Habanero.DB.DBMigrator.SetSettingsStorer(Habanero.Base.ISettings)">
            <summary>
            Sets this instance's settings storer to that specified
            </summary>
            <param name="storer">The settings storer</param>
        </member>
        <member name="M:Habanero.DB.DBMigrator.SetCurrentVersion(System.Int32)">
            <summary>
            Sets the current version number to that specified
            </summary>
            <param name="version">The version number to set to</param>
        </member>
        <member name="M:Habanero.DB.DBMigrator.CurrentVersion">
            <summary>
            Returns the current version number
            </summary>
            <returns>Returns the version number, or 0 if unsuccessful</returns>
            <exception cref="T:System.ArgumentNullException">Thrown if the
            settings storer has not been assigned</exception>
        </member>
        <member name="M:Habanero.DB.DBMigrator.MigrateTo(System.Int32)">
            <summary>
            Carries out all migrations from the current version to the version
            specified. Note: The DBMigrator currently only supports forward 
            migrations.
            </summary>
            <param name="version">The version number to migrate to (inclusive)</param>
        </member>
        <member name="M:Habanero.DB.DBMigrator.LatestVersion">
            <summary>
            Returns the most recent migration version number available
            </summary>
            <returns>Returns an integer</returns>
        </member>
        <member name="M:Habanero.DB.DBMigrator.MigrateToLatestVersion">
            <summary>
            Performs all migrations available from the current version number
            to the most recent version available.  This is the common-case
            method used to carry out a migration, unless you require more
            specific control.
            </summary>
        </member>
        <member name="P:Habanero.DB.DBMigrator.MigrationCount">
            <summary>
            Returns the migration count
            </summary>
        </member>
        <member name="T:Habanero.DB.ConnectionStringDB4OFactory">
            <summary>
            Produces connection strings that are tailored for a Firebird database
            </summary>
        </member>
        <member name="M:Habanero.DB.ConnectionStringDB4OFactory.CheckArguments(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Checks that each of the arguments provided are valid
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <exception cref="T:System.ArgumentException">Thrown if any of the
            arguments provided are invalid</exception>
        </member>
        <member name="M:Habanero.DB.ConnectionStringDB4OFactory.CreateConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a connection string from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
        </member>
        <member name="T:Habanero.DB.DatabaseConnectionSqlServer">
            <summary>
            A database connection customised for the SqlServer database
            </summary>
        </member>
        <member name="T:Habanero.DB.DatabaseConnection">
            <summary>
            A super-class to manage a database connection and execute sql commands
            </summary>
            "See registry (480) think typesafe as well."
        </member>
        <member name="F:Habanero.DB.DatabaseConnection._sqlFormatter">
            <summary>
            The <see cref="P:Habanero.DB.DatabaseConnection.SqlFormatter"/> that is used to format the Swl for the database type represented by this database connection
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.#ctor">
            <summary>
            Constructor that initialises a new set of null connections
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.#ctor(System.String,System.String)">
            <summary>
            Constructor that allows an assembly name and class name to
            be specified
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The database class name</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.#ctor(System.String,System.String,System.String)">
            <summary>
            Constructor to initialise the connection with the assembly name,
            class name and connection string provided
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
            <param name="connectString">The connection string. This can be
            generated by the various GetConnectionString() methods, tailored
            for the appropriate database vendors.</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.CreateDatabaseConnection">
            <summary>
            Creates a database connection using the assembly name and class
            name provided.
            </summary>
            <returns>Returns an IDbConnection object</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.ErrorSafeConnectString">
            <summary>
            Returns a connection string with the password removed.  This method
            serves as a secure way of displaying an error message in the case 
            of a connection error, without compromising confidentiality.
            </summary>
            <returns>Returns a connect string with no password</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.GetOpenConnectionForReading">
            <summary>
            Either finds a closed connection and opens and returns it,
            or creates a new connection and returns that.  Throws an 
            exception and adds a message to the log if there is an 
            error opening a connection.
            </summary>
            <returns>Returns a new IDbConnection object</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.GetConnection">
            <summary>
            Returns the first closed connection available or returns a
            new connection object.  Throws an exception and adds a message 
            to the log if there is an error opening a connection.
            </summary>
            <returns>Returns a new IDbConnection object</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.LoadDataReader(Habanero.Base.ISqlStatement,System.String)">
            <summary>
            Loads a data reader and specifies an order-by clause
            </summary>
            <param name="selectSql">The sql statement object</param>
            <param name="strOrderByCriteria">A sql order-by clause</param>
            <returns>Returns an IDataReader object</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.AppendOrderBy(Habanero.Base.ISqlStatement,System.String)">
            <summary>
            Appends an order-by clause to the sql statement. " ORDER BY " is
            automatically prefixed by this method.
            </summary>
            <param name="statement"></param>
            <param name="orderByCriteria">The order-by clause</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.LoadDataReader(System.String)">
            <summary>
            Loads a data reader with the given raw sql select statement
            </summary>
            <param name="selectSql">The sql statement as a string</param>
            <returns>Returns an IDataReader object with the results of the query</returns>
            <exception cref="T:Habanero.DB.DatabaseReadException">Thrown when an error
            occurred while setting up the data reader.  Also sends error
            output to the log.</exception>        
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.LoadDataReader(System.String,System.Data.IDbTransaction)">
            <summary>
            Loads a data reader with the given raw sql select statement for the specified transaction
            </summary>
            <param name="selectSql">The sql statement as a string</param>
            <param name="transaction">Thransaction that gives the context within which the sql statement should be executed</param>
            <returns>Returns an IDataReader object with the results of the query</returns>
            <exception cref="T:Habanero.DB.DatabaseReadException">Thrown when an error
            occurred while setting up the data reader.  Also sends error
            output to the log.</exception>        
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.LoadDataReader(Habanero.Base.ISqlStatement)">
            <summary>
            Loads a data reader
            </summary>
            <param name="selectSql">The sql statement object</param>
            <returns>Returns an IDataReader object</returns>
            <exception cref="T:Habanero.DB.DatabaseReadException">Thrown when an error
            occurred while setting up the data reader.  Also sends error
            output to the log.</exception>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.BeginTransaction(System.Data.IDbConnection)">
            <summary>
            Creates a transaction using the <see cref="P:Habanero.DB.DatabaseConnection.IsolationLevel"/> set as the IsolationLevel. If this doesn't work, creates
            a transaction using the default IsolationLevel. Uses the connection passed in to create the transaction on - this should be
            open (so use <see cref="M:Habanero.DB.DatabaseConnection.GetOpenConnectionForReading"/> to get the connection first).  Override this method to 
            do special transaction creation logic.
            </summary>
            <param name="openConnection"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.ExecuteSql(Habanero.Base.ISqlStatementCollection)">
            <summary>
            Executes a sql command that returns no result set and takes no 
            parameters, using the provided connection
            </summary>
            <param name="sql">A valid sql statement (typically "insert",
            "update" or "delete"). Note_ that this assumes that the
            sqlCommand is not a stored procedure.</param>
            <returns>Returns the number of rows affected</returns>
            <future>
            In future override this method with others that allow you to 
            pass in stored procedures and parameters.
            </future>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.ExecuteRawSql(System.String)">
            <summary>
            Executes a sql command as before, but with the full sql string
            provided, rather than with a sql statement object
            </summary>
            <param name="sql">The sql statement as a string</param>
            <returns>Returns the number of rows affected</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.ExecuteRawSql(System.String,System.Data.IDbTransaction)">
            <summary>
            Executes a sql command that returns no result set and takes no 
            parameters, using the provided connection.
            This method can be used effectively where the database vendor
            supports the execution of several sql statements in one
            ExecuteNonQuery.  However, for database vendors like Microsoft
            Access and MySql, the sql statements will need to be split up
            and executed as separate transactions.
            </summary>
            <param name="sql">A valid sql statement (typically "insert",
            "update" or "delete") as a string. Note_ that this assumes that the
            sqlCommand is not a stored procedure.</param>
            <param name="transaction">A valid transaction object in which the 
            sql must be executed, or null</param>
            <returns>Returns the number of rows affected</returns>
            <exception cref="T:Habanero.DB.DatabaseWriteException">Thrown if there is an
            error writing to the database.  Also outputs error messages to the log.
            </exception>
            <future>
            In future override this method with methods that allow you to 
            pass in stored procedures and parameters.
            </future>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.ExecuteSql(Habanero.Base.ISqlStatementCollection,System.Data.IDbTransaction)">
            <summary>
            Executes a collection of sql commands that returns no result set 
            and takes no parameters, using the provided connection.
            This method can be used effectively where the database vendor
            supports the execution of several sql statements in one
            ExecuteNonQuery.  However, for database vendors like Microsoft
            Access and MySql, the sql statements will need to be split up
            and executed as separate transactions.
            </summary>
            <param name="sql">A valid sql statement object (typically "insert",
            "update" or "delete"). Note_ that this assumes that the
            sqlCommand is not a stored procedure.</param>
            <param name="transaction">A valid transaction object in which the 
            sql must be executed, or null</param>
            <returns>Returns the number of rows affected</returns>
            <exception cref="T:Habanero.DB.DatabaseWriteException">Thrown if there is an
            error writing to the database.  Also outputs error messages to the log.
            </exception>
            <future>
            In future override this method with methods that allow you to 
            pass in stored procedures and parameters.
            </future>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.ExecuteSql(Habanero.Base.ISqlStatement)">
            <summary>
            Executes a single sql statement object
            </summary>
            <param name="sql">The sql statement object</param>
            <returns>Returns the number of rows affected</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.GetLimitClauseForBeginning(System.Int32)">
            <summary>
            Returns a limit clause with the limit specified, with the format
            as " TOP [limit] " (eg. " TOP 4 ")
            </summary>
            <param name="limit">The limit</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.GetLimitClauseForEnd(System.Int32)">
            <summary>
            Returns an empty string in this implementation
            </summary>
            <param name="limit">The limit - has no relevance in this 
            implementation</param>
            <returns>Returns an empty string in this implementation</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.SetTimeoutPeriod(System.Int32)">
            <summary>
            Set the time-out period in seconds, after which the connection
            attempt will fail
            </summary>
            <param name="timeoutSeconds">The time-out period in seconds</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.CreateParameterNameGenerator">
            <summary>
            Creates an <see cref="T:Habanero.Base.IParameterNameGenerator"/> for this database connection.  This is used to create names for parameters
            added to an <see cref="T:Habanero.Base.ISqlStatement"/> because each database uses a different naming convention for their parameters.
            </summary>
            <returns>The <see cref="T:Habanero.Base.IParameterNameGenerator"/> valid for this <see cref="T:Habanero.Base.IDatabaseConnection"/></returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.LoadDataTable(Habanero.Base.ISqlStatement,System.String,System.String)">
            <summary>
            Loads data from the database into a DataTable object, using the
            sql statement object provided
            </summary>
            <param name="selectSql">The sql statement object</param>
            <param name="strSearchCriteria">The search criteria as a string
            to append</param>
            <param name="strOrderByCriteria">The order by criteria as a string
            to append</param>
            <returns>Returns a DataTable object</returns>
            <exception cref="T:Habanero.DB.DatabaseReadException">Thrown if there is an
            error reading the database.  Also outputs error messages to the log.
            </exception>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.GetDataTable(System.Data.IDataReader)">
            <summary>
            Returns the DataTable for the DataReader.
            </summary>
            <param name="reader"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.GetDataTable(System.Data.IDataReader,System.String)">
            <summary>
            Returns a dataTable with the data from the reader and the columns names and field types set up.
            </summary>
            <param name="reader">the Reader that the dataTable will be made from</param>
            <param name="dataTableName">the name of the DataTable</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnection.GetLastAutoIncrementingID(System.String,System.Data.IDbTransaction,System.Data.IDbCommand)">
            <summary>
            Gets the value of the last auto-incrementing number.  This called after doing an insert statement so that
            the inserted auto-number can be retrieved.  The table name, current IDbTransaction and IDbCommand are passed
            in so that they can be used if necessary.  Note_, this must be overridden in subclasses to include support
            for this feature in different databases - otherwise a NotImplementedException will be thrown.
            </summary>
            <param name="tableName">The name of the table inserted into</param>
            <param name="tran">The current transaction, the one the insert was done in</param>
            <param name="command">The Command the did the insert statement</param>
            <returns></returns>
        </member>
        <member name="P:Habanero.DB.DatabaseConnection.NewConnection">
            <summary>
            Creates a new connection object and assigns to it the
            connection string that is stored in this instance
            </summary>
            <returns>Returns the new IDbConnection object</returns>
        </member>
        <member name="P:Habanero.DB.DatabaseConnection.CurrentConnection">
            <summary>
            Gets or sets the current database connection
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConnection.ConnectionString">
            <summary>
            Gets and sets the connection string used to connect with the
            database.  Closes and disposes existing connections before
            assigning a new connection string.
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConnection.TestConnection">
            <summary>
            Creates a connection and assigns this instance's connection string
            </summary>
            <returns>Returns a new IDbConnection object</returns>
        </member>
        <member name="P:Habanero.DB.DatabaseConnection.OpenConnection">
            <summary>
            Creates and returns an open connection
            </summary>
            <returns>Returns an IDbConnection object</returns>
        </member>
        <member name="P:Habanero.DB.DatabaseConnection.LeftFieldDelimiter">
            <summary>
            Returns a left field delimiter appropriate for the database (based on the <see cref="P:Habanero.DB.DatabaseConnection.SqlFormatter"/> setup for
              connection
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConnection.RightFieldDelimiter">
            <summary>
            Returns a Right field delimiter appropriate for the database (based on the <see cref="P:Habanero.DB.DatabaseConnection.SqlFormatter"/> setup for
              connection
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConnection.SqlFormatter">
            <summary>
             Creates a SQL formatter for the specified database.
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConnection.IsolationLevel">
            <summary>
            Gets the IsolationLevel to use for this connection
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionSqlServer.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name and class name
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionSqlServer.#ctor(System.String,System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name, class name and connection string
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
            <param name="connectString">The connection string, which can be
            generated using ConnectionStringSqlServerFactory.CreateConnectionString()
            </param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionSqlServer.GetLastAutoIncrementingID(System.String,System.Data.IDbTransaction,System.Data.IDbCommand)">
            <summary>
            Gets the value of the last auto-incrementing number.  This called after doing an insert statement so that
            the inserted auto-number can be retrieved.  The table name, current IDbTransaction and IDbCommand are passed
            in so that they can be used if necessary.  
            </summary>
            <param name="tableName">The name of the table inserted into</param>
            <param name="tran">The current transaction, the one the insert was done in</param>
            <param name="command">The Command the did the insert statement</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionSqlServer.CreateParameterNameGenerator">
            <summary>
            Creates an <see cref="T:Habanero.Base.IParameterNameGenerator"/> for this database connection.  This is used to create names for parameters
            added to an <see cref="T:Habanero.Base.ISqlStatement"/> because each database uses a different naming convention for their parameters.
            </summary>
            <returns>The <see cref="T:Habanero.Base.IParameterNameGenerator"/> valid for this <see cref="T:Habanero.Base.IDatabaseConnection"/></returns>
        </member>
        <member name="P:Habanero.DB.DatabaseConnectionSqlServer.IsolationLevel">
            <summary>
            Gets the IsolationLevel <see cref="P:Habanero.DB.DatabaseConnectionSqlServer.IsolationLevel"/> to use for this connection.
            This is set to ReadUncommitted For SQL to overcome issues with trying to load children of a business
            object while the children are already in the Transaction to be deleted resulting in a deadlock.
            </summary>
        </member>
        <member name="T:Habanero.DB.DatabaseConnectionMySql">
            <summary>
            A database connection customised for the MySql database
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionMySql.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name and class name
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionMySql.#ctor(System.String,System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name, class name and connection string
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
            <param name="connectString">The connection string, which can be
            generated using ConnectionStringMySqlFactory.CreateConnectionString()
            </param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionMySql.CreateParameterNameGenerator">
            <summary>
            Creates an <see cref="T:Habanero.Base.IParameterNameGenerator"/> for this database connection.  This is used to create names for parameters
            added to an <see cref="T:Habanero.Base.ISqlStatement"/> because each database uses a different naming convention for their parameters.
            </summary>
            <returns>The <see cref="T:Habanero.Base.IParameterNameGenerator"/> valid for this <see cref="T:Habanero.Base.IDatabaseConnection"/></returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionMySql.GetLastAutoIncrementingID(System.String,System.Data.IDbTransaction,System.Data.IDbCommand)">
            <summary>
            Gets the value of the last auto-incrementing number.  This called after doing an insert statement so that
            the inserted auto-number can be retrieved.  The table name, current IDbTransaction and IDbCommand are passed
            in so that they can be used if necessary.  
            </summary>
            <param name="tableName">The name of the table inserted into</param>
            <param name="tran">The current transaction, the one the insert was done in</param>
            <param name="command">The Command the did the insert statement</param>
            <returns></returns>
        </member>
        <member name="T:Habanero.DB.DeleteStatementGenerator">
            <summary>
            Generates "delete" sql statements to delete a specified business
            object from the database
            </summary>
        </member>
        <member name="M:Habanero.DB.DeleteStatementGenerator.#ctor(Habanero.Base.IBusinessObject,Habanero.Base.IDatabaseConnection)">
            <summary>
            Constructor to initialise the generator
            </summary>
            <param name="bo">The business object to be deleted</param>
            <param name="connection">The database connection</param>
        </member>
        <member name="M:Habanero.DB.DeleteStatementGenerator.Generate">
            <summary>
            Generates a collection of sql statements to delete the business
            object from the database
            </summary>
            <returns>Returns a sql statement collection</returns>
        </member>
        <member name="T:Habanero.DB.ConnectionStringSQLiteFactory">
            <summary>
            Produces connection strings that are tailored for the SQLite database
            </summary>
        </member>
        <member name="M:Habanero.DB.ConnectionStringSQLiteFactory.CheckArguments(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Checks that each of the arguments provided are valid
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <exception cref="T:System.ArgumentException">Thrown if any of the
            arguments provided are invalid</exception>
        </member>
        <member name="M:Habanero.DB.ConnectionStringSQLiteFactory.CreateConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a connection string from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
        </member>
        <member name="T:Habanero.DB.DataAccessorDB">
            <summary>
             A Data Accessor for Retrieving and committing data from a relational database.
            </summary>
        </member>
        <member name="M:Habanero.DB.DataAccessorDB.#ctor">
            <summary>
             The constructor for relational database data accessor. Sets up the appropriate
             Business object loader for the databse using the current connection string.
            </summary>
        </member>
        <member name="M:Habanero.DB.DataAccessorDB.#ctor(Habanero.Base.IDatabaseConnection)">
            <summary>
             The constructor for relational database data accessor. Sets up the appropriate
             Business object loader for the databse using the current connection string.
            </summary>
        </member>
        <member name="M:Habanero.DB.DataAccessorDB.CreateTransactionCommitter">
            <summary>
            Creates a TransactionCommitter for you to use to persist BusinessObjects. A new TransactionCommitter is required
            each time an object or set of objects is persisted.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Habanero.DB.DataAccessorDB.BusinessObjectLoader">
            <summary>
            The <see cref="P:Habanero.BO.IDataAccessor.BusinessObjectLoader"/> to use to load BusinessObjects
            </summary>
        </member>
        <member name="T:Habanero.DB.ConcurrencyControl.OptimisticLockingVersionNumberDB">
            <summary>
            Provides functionality to check if another user or process has 
            updated the object in the database since it was last read. 
            If there has been a conflict then the 
            BusObjUpdateConcurrencyControlException is thrown.
            A version number is used to check if the object has been edited. 
            To use this class effectively, the update properties method 
            must be called before the database is updated (i.e. in  
            <see cref="M:Habanero.BO.BusinessObject.Save"/> ) 
            <see cref="M:Habanero.DB.ConcurrencyControl.OptimisticLockingVersionNumberDB.UpdatePropertiesWithLatestConcurrencyInfoBeforePersisting"/>)
            This class implements the followign concurrency control philosophy.
            Every time a non dirty object is retrieved from the database the 
            </summary>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.OptimisticLockingVersionNumberDB.#ctor(Habanero.BO.BusinessObject,Habanero.Base.IBOProp,Habanero.Base.IBOProp,Habanero.Base.IBOProp,Habanero.Base.IBOProp)">
            <summary>
            Constructor to initialise a new instance with details of the last
            update of the object in the database
            </summary>
            <param name="busObj">The business object on which to perform concurrency control</param>
            <param name="dateLastUpdated">The date that the object was
            last updated</param>
            <param name="userLastUpdated">The user that last updated the
            object</param>
            <param name="machineLastUpdated">The machine name on which the
            object was last updated</param>
            <param name="versionNumber">The version number</param>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.OptimisticLockingVersionNumberDB.#ctor(Habanero.BO.BusinessObject,Habanero.Base.IBOProp,Habanero.Base.IBOProp,Habanero.Base.IBOProp,Habanero.Base.IBOProp,Habanero.Base.IBOProp)">
            <summary>
            Constructor as before, but allows the operating system on which
            the update was done to be specified
            </summary>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.OptimisticLockingVersionNumberDB.CheckConcurrencyBeforePersisting">
            <summary>
            Checks concurrency before persisting an object to the database
            in order to prevent one of two conflicting copies from being lost.
            Throws an exception if the object has been edited by another
            process/user, as determined by a version number.
            The object is persisted by calling 
            <see cref="M:Habanero.DB.ConcurrencyControl.OptimisticLockingVersionNumberDB.UpdatePropertiesWithLatestConcurrencyInfoBeforePersisting"/>.
            </summary>
            <exception cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException">Thrown if 
            the object has been deleted by another process/user</exception>
            <exception cref="T:Habanero.BO.BusObjOptimisticConcurrencyControlException">Thrown 
            if the object has been edited by another process/user</exception>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.OptimisticLockingVersionNumberDB.CheckConcurrencyBeforeBeginEditing">
            <summary>
            Checks concurrency before the user begins editing an object, in
            order to avoid the user making changes to an object and then losing
            those changes when the committal process shows a concurrency
            failure
            </summary>
            <exception cref="T:Habanero.BO.BusObjBeginEditConcurrencyControlException">Thrown
            if the object has been edited in the database since it was last
            loaded by the object manager</exception>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.OptimisticLockingVersionNumberDB.UpdatePropertiesWithLatestConcurrencyInfoBeforePersisting">
            <summary>
            Updates the version number, machine name, username and time edited.
            The version number is used to determine whether there is a 
            concurrency conflict, and the other properties are used for 
            reporting of concurrency conflicts if they occur.
            </summary>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.OptimisticLockingVersionNumberDB.ReleaseWriteLocks">
            <summary>
            Does nothing since optimistic locking is used and no locks are applied
            </summary>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.OptimisticLockingVersionNumberDB.UpdateAsTransactionRolledBack">
            <summary>
             Makes any changes required to the concurrency control mechanism 
             to assert that the transaction has failed and thus been rolled back.
            </summary>
        </member>
        <member name="T:Habanero.DB.UpdateStatementGenerator">
            <summary>
            Generates "update" sql statements to update a specified business
            object's properties in the database
            </summary>
        </member>
        <member name="M:Habanero.DB.UpdateStatementGenerator.#ctor(Habanero.Base.IBusinessObject,Habanero.Base.IDatabaseConnection)">
            <summary>
            Constructor to initialise the generator
            </summary>
            <param name="bo">The business object whose properties are to
            be updated</param>
            <param name="connection">A database connection</param>
        </member>
        <member name="M:Habanero.DB.UpdateStatementGenerator.Generate">
            <summary>
            Generates a collection of sql statements to update the business
            object's properties in the database
            </summary>
            <returns>Returns a sql statement collection</returns>
        </member>
        <member name="M:Habanero.DB.UpdateStatementGenerator.GenerateSingleUpdateStatement(System.String,Habanero.Base.IBOPropCol,System.Boolean,Habanero.BO.ClassDefinition.ClassDef)">
            <summary>
            Generates an "update" sql statement for the properties in the
            business object
            </summary>
            <param name="tableName">The table name</param>
            <param name="propsToInclude">A collection of properties to update,
            if the previous include-all boolean was not set to true</param>
            <param name="isSuperClassStatement">Whether a super-class is involved</param>
            <param name="currentClassDef">The current class definition</param>
        </member>
        <member name="M:Habanero.DB.UpdateStatementGenerator.GetPropsToInclude(Habanero.Base.IClassDef)">
            <summary>
            Builds a collection of properties to include in the update,
            depending on the inheritance type
            </summary>
        </member>
        <member name="M:Habanero.DB.UpdateStatementGenerator.GenerateForRelationship(Habanero.Base.IRelationship,Habanero.Base.IBusinessObject)">
            <summary>
             Generate SqlStatementCollection for the Relationsp
            </summary>
            <param name="relationship"></param>
            <param name="relatedBusinessObject"></param>
            <returns></returns>
        </member>
        <member name="T:Habanero.DB.TransactionLogTable">
            <summary>
            Logs transactions in the same database that is used to store the
            business objects. Used to log every change to the business object.
            Stores datetime action carried out actionstype (CRUD). windows user, logged user. 
            Database Field name and the dirty XML field (shows the previously persisted state
               and newly persisted state of the field.
            </summary>
        </member>
        <member name="M:Habanero.DB.TransactionLogTable.#ctor(Habanero.BO.BusinessObject)">
            <summary>
             Constructs the new transactionlogTable with default table name and logging fields.
            </summary>
            <param name="busObjToLog"></param>
        </member>
        <member name="M:Habanero.DB.TransactionLogTable.#ctor(Habanero.BO.BusinessObject,System.String)">
            <summary>
             Constructs the new transactionlogTable with specified table name and the defaultlogging fields.
            </summary>
            <param name="busObjToLog">the business object for which the transaction log is being created</param>
            <param name="transactionLogTable">The log table name</param>
        </member>
        <member name="M:Habanero.DB.TransactionLogTable.#ctor(Habanero.BO.BusinessObject,Habanero.Base.ISecurityController)">
            <summary>
            Constructs the new transactionlogTable with default table name and logging fields and a specific security controller for getting the currently logged on user.
            </summary>
            <param name="busObjToLog"></param>
            <param name="securityController"></param>
        </member>
        <member name="M:Habanero.DB.TransactionLogTable.#ctor(Habanero.BO.BusinessObject,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Constructor to initialise a new log table
            </summary>
            <param name="buObjToLog">the business object for which the transaction log is being created</param>
            <param name="transactionLogTable">The log table name</param>
            <param name="dateTimeUpdatedFieldName">Time updated field name</param>
            <param name="windowsUserFieldName">Windows user field name</param>
            <param name="logonUserFieldName">Logon user field name</param>
            <param name="businessObjectToStringFieldName">BusinessObject ToString field name</param>
            <param name="machineUpdateName">Machine update name</param>
            <param name="businessObjectTypeNameFieldName">BO type field name</param>
            <param name="crudActionFieldName">Crud action field name</param>
            <param name="dirtyXMLFieldName">Dirty xml field name</param>
        </member>
        <member name="M:Habanero.DB.TransactionLogTable.#ctor(Habanero.BO.BusinessObject,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,Habanero.Base.ISecurityController)">
            <summary>
            Constructor to initialise a new log table
            </summary>
            <param name="buObjToLog">the business object for which the transaction log is being created</param>
            <param name="transactionLogTable">The log table name</param>
            <param name="dateTimeUpdatedFieldName">Time updated field name</param>
            <param name="windowsUserFieldName">Windows user field name</param>
            <param name="logonUserFieldName">Logon user field name</param>
            <param name="businessObjectToStringFieldName"></param>
            <param name="machineUpdateName">Machine update name</param>
            <param name="businessObjectTypeNameFieldName">BO type field name</param>
            <param name="crudActionFieldName">Crud action field name</param>
            <param name="dirtyXMLFieldName">Dirty xml field name</param>
            <param name="securityController"></param>
        </member>
        <member name="M:Habanero.DB.TransactionLogTable.GetCrudAction(Habanero.Base.IBusinessObject)">
            <summary>
            Returns the status of the business object specified, such as
            "Created", "Deleted" or "Updated" (if dirty)
            </summary>
            <param name="busObj">The business object in question</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.DB.TransactionLogTable.GetPersistSql">
            <summary>
             Returns the appropriate sql statement collection depending on the state of the object.
             E.g. Update SQL, InsertSQL or DeleteSQL.
            </summary>
        </member>
        <member name="M:Habanero.DB.TransactionLogTable.TransactionID">
            <summary>
            </summary>
            <returns>The ID that uniquelty identifies this item of the transaction. In the case of business objects the object Id.
             for non business objects that no natural id exists for the particular transactional item a guid that uniquely identifies 
             transactional item should be generated. This is used by the transaction committer to ensure that the transactional item
             is not added twice in error.</returns>
        </member>
        <member name="M:Habanero.DB.TransactionLogTable.UpdateStateAsCommitted">
            <summary>
             Updates the business object as committed
            </summary>
        </member>
        <member name="M:Habanero.DB.TransactionLogTable.UpdateAsRolledBack">
            <summary>
             updates the object as rolled back
            </summary>
        </member>
        <member name="T:Habanero.DB.DatabaseConfig">
            <summary>
            Stores database configuration settings and creates connections
            using these settings
            </summary>
        </member>
        <member name="F:Habanero.DB.DatabaseConfig.MySql">
            <summary>
            MySql - the MySql .NET data provider will be used
            </summary>
        </member>
        <member name="F:Habanero.DB.DatabaseConfig.DB4O">
            <summary>
            DB4O - the DB4O .NET data provider will be used
            </summary>
        </member>
        <member name="F:Habanero.DB.DatabaseConfig.SqlServer">
            <summary>
            Microsoft Sql Server - the built in SqlClient data provider will be used
            </summary>
        </member>
        <member name="F:Habanero.DB.DatabaseConfig.Oracle">
            <summary>
            Oracle - the built in Oracle data provider will be used
            </summary>
        </member>
        <member name="F:Habanero.DB.DatabaseConfig.Access">
            <summary>
            Access - the built in OleDb data provider will be used
            </summary>
        </member>
        <member name="F:Habanero.DB.DatabaseConfig.PostgreSql">
            <summary>
            PostGreSQL - the PostGreSQL data provider will be used
            </summary>
        </member>
        <member name="F:Habanero.DB.DatabaseConfig.SQLite">
            <summary>
            SQLite - the SQLite data provider will be used
            </summary>
        </member>
        <member name="F:Habanero.DB.DatabaseConfig.Firebird">
            <summary>
            Firebird - the Firebird data provider will be used
            </summary>
        </member>
        <member name="F:Habanero.DB.DatabaseConfig.FirebirdEmbedded">
            <summary>
            Firebird embedded - the Firebird embedded data provider will be used
            </summary>
        </member>
        <member name="F:Habanero.DB.DatabaseConfig.Access2007">
            <summary>
            MSAccess 2007 - accdb format
            </summary>
        </member>
        <member name="F:Habanero.DB.DatabaseConfig.VendorToConnectionStringFactoryNameMap">
            <summary>
            We need to map the database vendor name to the right <see cref="T:Habanero.DB.ConnectionStringFactory"/> type.
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.#ctor">
            <summary>
            A deparameterised constructor
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.#ctor(System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            A constructor with specific configurations provided
            </summary>
            <param name="vendor">The database vendor - use the strings
            provided (eg. DatabaseConfig.MySql)</param>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The username</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.#ctor(System.Collections.IDictionary)">
            <summary>
            A constructor as before, but with the configuration settings
            passed as an IDictionary object
            </summary>
            <param name="settings">An IDictionary object containing entries
            for "vendor", "server", "database", "username", "password" and
            "port"</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.SetPrivateKey(System.String)">
            <summary>
            Sets the private key to use to decrypt the password.  The private key is in xml format.   
            </summary>
            <param name="xmlPrivateKey">The xml format of the RSA key (RSA.ToXmlString(true))</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.SetPrivateKey(System.Security.Cryptography.RSA)">
            <summary>
            Sets the private key to use to decrypt password. The private key is an RSA object.
            </summary>
            <param name="privateKey">The RSA object which has the private key</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.ReadFromConfigFile">
            <summary>
            Creates a new configuration object by reading the "DatabaseConfig"
            settings from the project's configuration settings
            </summary>
            <returns>Returns a DatabaseConfig object</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.ReadFromConfigFile(System.String)">
            <summary>
             Creates a new configuration object by reading the "DatabaseConfig"
             settings from the project's configuration settings
            </summary>
            <param name="configSectionName">The name of the Config Setting Section where the database connection settings are stored.</param>
            <returns>Returns a DatabaseConfig object</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.GetConnectionString">
            <summary>
            Returns a connection string tailored for the database vendor
            </summary>
            <returns>Returns a connection string</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.GetConnection">
            <summary>
            Creates a database connection using the configuration settings
            stored
            </summary>
            <returns>Returns an IDbConnection object</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.GetDatabaseConnection">
            <summary>
            Creates a database connection using the configuration settings
            stored
            </summary>
            <returns>Returns an IDatabaseConnection object</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.Equals(System.Object)">
            <summary>
            Checks whether this database configuration is equal to that of
            the object provided
            </summary>
            <param name="obj">The object to compare with, which must be a
            type of DatabaseConfig</param>
            <returns>Returns true if all configurations are the same</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.GetHashCode">
            <summary>
            Returns the hashcode of all the settings added together
            </summary>
            <returns>Returns the hashcode</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConfig.ToString">
            <summary>
            Returns a string with all the settings listed
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="P:Habanero.DB.DatabaseConfig.Vendor">
            <summary>
            Gets and sets access to the database vendor setting
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConfig.Server">
            <summary>
            Gets and sets access to the database server setting
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConfig.Database">
            <summary>
            Gets and sets access to the database name setting
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConfig.UserName">
            <summary>
            Gets and sets access to the username setting
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConfig.Password">
            <summary>
            Gets and sets access to the password setting
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConfig.Port">
            <summary>
            Gets and sets access to the port setting
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConfig.AssemblyName">
            <summary>
            The name of the Assembly to use - the assembly that contains the IDbConnection class for this database type.
            This does not need to be specified normally, but if you want to use a custom data provider you will need to 
            set this property before using the <see cref="T:Habanero.Base.IDatabaseConnectionFactory"/> to create the <see cref="T:Habanero.Base.IDatabaseConnection"/>.
            This must be the full name of the assembly if you are to be sure to get the right assembly.  Alternately if the dll is
            placed in the same folder as the application you can just specify the name of the file (without the .dll extension).
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConfig.FullClassName">
            <summary>
            The fully qualified name of the type to use when creating the IDbConnection.
            This does not need to be specified normally, but if you want to use a custom data provider you will need to 
            set this property before using the <see cref="T:Habanero.Base.IDatabaseConnectionFactory"/> to create the <see cref="T:Habanero.Base.IDatabaseConnection"/>.
            This class must exist withing the assembly specified in the <see cref="P:Habanero.DB.DatabaseConfig.AssemblyName"/> property, and be fully qualified
            i.e. it must include the namespace.
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConfig.ConnectionStringFactoryAssemblyName">
            <summary>
            The full assembly name of the assembly containing <see cref="T:Habanero.DB.ConnectionStringFactory"/> to use.
            This does not need to be specified if you are using one of the standard Habanero database types.
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConfig.ConnectionStringFactoryClassName">
            <summary>
            The fully qualified class name of the <see cref="T:Habanero.DB.ConnectionStringFactory"/> to use.
            This does not need to be specified if you are using one of the standard Habanero database types.
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConfig.DecryptedPassword">
            <summary>
            Returns the decrypted password.  This will be the same as <see cref="P:Habanero.DB.DatabaseConfig.Password"/> if the private key has not been
            set (via <see cref="M:Habanero.DB.DatabaseConfig.SetPrivateKey(System.String)"/> or <see cref="M:Habanero.DB.DatabaseConfig.SetPrivateKey(System.Security.Cryptography.RSA)"/>.
            </summary>
        </member>
        <member name="T:Habanero.DB.DatabaseConnectionPostgreSql">
            <summary>
            A database connection customised for the PostgreSql database
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionPostgreSql.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name and class name
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionPostgreSql.#ctor(System.String,System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name, class name and connection string
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
            <param name="connectString">The connection string, which can be
            generated using ConnectionStringPostgreSqlFactory.CreateConnectionString()
            </param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionPostgreSql.CreateParameterNameGenerator">
            <summary>
            Creates an <see cref="T:Habanero.Base.IParameterNameGenerator"/> for this database connection.  This is used to create names for parameters
            added to an <see cref="T:Habanero.Base.ISqlStatement"/> because each database uses a different naming convention for their parameters.
            </summary>
            <returns>The <see cref="T:Habanero.Base.IParameterNameGenerator"/> valid for this <see cref="T:Habanero.Base.IDatabaseConnection"/></returns>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.PessimisticLockingDB.#ctor(Habanero.BO.BusinessObject,System.Int32,Habanero.Base.IBOProp,Habanero.Base.IBOProp,Habanero.Base.IBOProp,Habanero.Base.IBOProp,Habanero.Base.IBOProp)">
            <summary>
            Constructor to initialise a new instance of pessimistic locking with the property details
            form implementing the pessimistic locking strategy.
            </summary>
            <param name="busObj">The business object on which to perform concurrency control</param>
            <param name="lockDurationInMinutes">The period of time that the lock will be maintained</param>
            <param name="boPropDateTimeLocked">The date that the object was locked</param>
            <param name="boPropUserLocked">The user that locked the object</param>
            <param name="boPropMachineLocked">The machine name on which the object was last updated</param>
            <param name="boPropOperatingSystemUser">The Windows logged on user who locked the object</param>
            <param name="boPropLocked">The property that determines whether the object is locked or not</param>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.PessimisticLockingDB.CheckConcurrencyBeforePersisting">
            <summary>
            Checks concurrency before persisting an object to the database
            in order to prevent one of two conflicting copies from being lost.
            Throws an exception if the object has been locked by another
            process/user, as determined by a property locked
            The object is persisted by calling 
            <see cref="M:Habanero.DB.ConcurrencyControl.PessimisticLockingDB.UpdatePropertiesWithLatestConcurrencyInfoBeforePersisting"/>.
            </summary>
            <exception cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException">Thrown if 
            the object has been deleted by another process/user</exception>
            <exception cref="T:Habanero.BO.BusObjOptimisticConcurrencyControlException">Thrown 
            if the object has been edited by another process/user</exception>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.PessimisticLockingDB.CheckConcurrencyBeforeBeginEditing">
            <summary>
            Checks concurrency before the user begins editing an object, in
            order to avoid the user making changes to an object and then losing
            those changes when the committal process shows a concurrency
            failure
            </summary>
            <exception cref="T:Habanero.BO.BusObjBeginEditConcurrencyControlException">Thrown
            if the object has been edited in the database since it was last
            loaded by the object manager</exception>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.PessimisticLockingDB.GetUpdateSql">
            <summary>
            Returns an "update" sql statement list for updating this object
            </summary>
            <returns>Returns a collection of sql statements</returns>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.PessimisticLockingDB.UpdatePropertiesWithLatestConcurrencyInfoBeforePersisting">
            <summary>
            Updates the version number, machine name, username and time edited.
            The version number is used to determine whether there is a 
            concurrency conflict, and the other properties are used for 
            reporting of concurrency conflicts if they occur.
            </summary>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.PessimisticLockingDB.ReleaseWriteLocks">
            <summary>
            Does nothing since optimistic locking is used and no locks are applied
            </summary>
        </member>
        <member name="M:Habanero.DB.ConcurrencyControl.PessimisticLockingDB.UpdateAsTransactionRolledBack">
            <summary>
             Makes any changes required to the concurrency control mechanism 
             to assert that the transaction has failed and thus been rolled back.
            </summary>
        </member>
        <member name="T:Habanero.DB.DatabaseConnectionFirebird">
            <summary>
            A super-class to manage a database connection and execute sql commands
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionFirebird.#ctor(System.String,System.String)">
            <summary>
            Constructor that allows an assembly name and class name to
            be specified
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The database class name</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionFirebird.#ctor(System.String,System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name, class name and connection string
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
            <param name="connectString">The connection string, which can be
            generated using ConnectionStringMySqlFactory.CreateConnectionString()
            </param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionFirebird.CreateParameterNameGenerator">
            <summary>
            Creates an <see cref="T:Habanero.Base.IParameterNameGenerator"/> for this database connection.  This is used to create names for parameters
            added to an <see cref="T:Habanero.Base.ISqlStatement"/> because each database uses a different naming convention for their parameters.
            </summary>
            <returns>The <see cref="T:Habanero.Base.IParameterNameGenerator"/> valid for this <see cref="T:Habanero.Base.IDatabaseConnection"/></returns>
        </member>
        <member name="T:Habanero.DB.TransactionCommitterDB">
            <summary>
            Provides a transaction committer that persists data to a
            database using SQL.
            <br/>
            A released application will often use a database, whereas a set of
            tests for the application used during development and maintenance may use
            a combination of database stores and in-memory stores.  Database storage
            is useful as a test of structure, but runs comparatively slowly to
            in-memory testing, which should be used for testing of the logic.
            </summary>
        </member>
        <member name="M:Habanero.DB.TransactionCommitterDB.#ctor(Habanero.Base.IDatabaseConnection)">
            <summary>
             Constructs the TransactionCommitter for a specific database connection
            </summary>
        </member>
        <member name="M:Habanero.DB.TransactionCommitterDB.BeginDataSource">
            <summary>
            Begins the transaction on the appropriate databasource.
            </summary>
        </member>
        <member name="M:Habanero.DB.TransactionCommitterDB.CreateTransactionalBusinessObject(Habanero.Base.IBusinessObject)">
            <summary>
            Decorates the business object with a TransactionalBusinessObjectDB.
            See <see cref="M:Habanero.BO.TransactionCommitter.CreateTransactionalBusinessObject(Habanero.Base.IBusinessObject)"/>
            </summary>
            <param name="businessObject">The business object to decorate in a TransactionalBusinessObjectDB</param>
            <returns>The decorated TransactionalBusinessObjectDB</returns>
        </member>
        <member name="M:Habanero.DB.TransactionCommitterDB.AddAddedChildBusinessObject``1(Habanero.Base.IRelationship,``0)">
            <summary>
            Add the Business Object for a child added to the relationship.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="relationship"></param>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.DB.TransactionCommitterDB.AddRemovedChildBusinessObject``1(Habanero.Base.IRelationship,``0)">
            <summary>
            Remove the Business Object for a child added to the relationship.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="relationship"></param>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.DB.TransactionCommitterDB.ExecuteTransactionToDataSource(Habanero.Base.ITransactional)">
            <summary>
            Tries to execute an individual transaction against the datasource.
            1'st phase of a 2 phase database commit.
            </summary>
        </member>
        <member name="M:Habanero.DB.TransactionCommitterDB.CommitToDatasource">
            <summary>
            Commits all the successfully executed statements to the datasource.
            2'nd phase of a 2 phase database commit.
            </summary>
        </member>
        <member name="M:Habanero.DB.TransactionCommitterDB.TryRollback">
            <summary>
            In the event of any errors occuring during executing statements to the datasource 
            <see cref="M:Habanero.BO.TransactionCommitter.ExecuteTransactionToDataSource(Habanero.Base.ITransactional)"/> or during committing to the datasource
            <see cref="M:Habanero.BO.TransactionCommitter.CommitToDatasource"/>
            </summary>
        </member>
        <member name="P:Habanero.DB.TransactionCommitterDB.DatabaseConnection">
            <summary>
            The <see cref="T:Habanero.Base.IDatabaseConnection"/> this transaction committer uses
            </summary>
        </member>
        <member name="M:Habanero.DB.StatementGeneratorUtils.PersistedDatabaseWhereClause(Habanero.Base.IBOKey,Habanero.Base.ISqlStatement)">
            <summary>
            Creates a "where" clause from the persisted properties held
            </summary>
            <param name="key"></param>
            <param name="sql">The sql statement used to generate and track
            parameters</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.DB.StatementGeneratorUtils.PersistedDatabaseNameFieldNameValuePair(Habanero.Base.IBOProp,Habanero.DB.SqlStatement)">
            <summary>
            This property returns the 
            Returns a string containing the database field name and the 
            persisted value, in the format of:<br/>
            "[fieldname] = '[value]'" (eg. "children = '2'")<br/>
            If a sql statement is provided, then the arguments are added
            in parameterised form.
            </summary>
            <param name="prop"></param>
            <param name="sql">A sql statement used to generate and track parameters</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.DB.StatementGeneratorUtils.DatabaseNameFieldNameValuePair(Habanero.Base.IBOProp,Habanero.DB.SqlStatement)">
            <summary>
            Returns a string containing the database field name and the 
            property value, in the format of:<br/>
            "[fieldname] = '[value]'" (eg. "children = '2'")<br/>
            If a sql statement is provided, then the arguments are added
            in parameterised form.
            </summary>
            <param name="prop"></param>
            <param name="sql">A sql statement used to generate and track
            parameters</param>
            <returns>Returns a string</returns>
        </member>
        <member name="T:Habanero.DB.DatabaseSettings">
            <summary>
            Stores database settings as a cache and updates or retrieves settings
            either from the cache or from the database if the cache value has
            expired
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.#ctor(Habanero.Base.IDatabaseConnection)">
            <summary>
            Constructor to initialise an empty store of settings, using the table
            name of "settings"
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.#ctor(System.String,Habanero.Base.IDatabaseConnection)">
            <summary>
            Constructor to initialise an empty store of settings, specifying
            the table name to use to store the settings
            </summary>
            <param name="tableName">The table name in which to store settings</param>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.HasSetting(System.String)">
            <summary>
             Returns whether the setting exists or not.
            </summary>
            <param name="settingName">The name of the setting to look for.</param>
            <returns>Returns whether the setting exists or not</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.GetString(System.String)">
            <summary>
            Returns a specified setting as a string
            </summary>
            <param name="settingName">The setting name</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.GetString(System.String,System.DateTime)">
            <summary>
            Returns a specified setting as a string
            </summary>
            <param name="settingName">The setting name</param>
            <param name="date">The date of the setting to retrieve 
            (ie this method will retrieve the setting value as at this date</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.SetString(System.String,System.String)">
            <summary>
            Sets a specified setting as a string
            </summary>
            <param name="settingName">The setting name</param>
            <param name="settingValue">The value to set it to</param>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.GetDecimal(System.String,System.DateTime)">
            <summary>
            Returns a specified setting as a decimal
            </summary>
            <param name="settingName">The setting name</param>
            <param name="date">The date at which to check the setting</param>
            <returns>Returns a decimal</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.GetDecimal(System.String)">
            <summary>
            Returns the configuration for the setting name provided
            </summary>
            <param name="settingName">The setting name</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.SetDecimal(System.String,System.Decimal)">
            <summary>
            Sets a setting with a decimal value (using the InvariantCulture).  Uses DateTime.Now for the 
            date of the setting to indicate when the setting was changed.
            </summary>
            <param name="settingName">The name of the setting to set</param>
            <param name="settingValue">The value to set the setting to.</param>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.GetBoolean(System.String)">
            <summary>
            Returns a specified setting as a boolean
            </summary>
            <param name="settingName">The setting name</param>
            <returns>Returns a boolean</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.SetBoolean(System.String,System.Boolean)">
            <summary>
            Sets a specified setting as a boolean
            </summary>
            <param name="settingName">The setting name</param>
            <param name="boolValue">The value to set it to</param>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.SetValue(System.String,System.String)">
            <summary>
            Updates the named setting in the database with the value
            specified
            </summary>
            <param name="settingName">The setting name</param>
            <param name="settingValue">The value to set to</param>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.UpdateCache(System.String)">
            <summary>
            Refreshes the cached setting stored in this instance, by
            retrieving the updated setting from the database
            </summary>
            <param name="settingName">The setting name</param>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.GetValue(System.String,System.DateTime)">
            <summary>
            Retrieves the named setting with the date specified, either
            from the cache or from the database if the cached value has
            expired
            </summary>
            <param name="settingName">The setting name</param>
            <param name="date">The date</param>
            <returns>Returns the value stored in the setting</returns>
            <exception cref="T:Habanero.Base.Exceptions.UserException">Thrown if the named setting
            does not exist</exception>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.CreateSelectStatement(System.String,System.DateTime)">
            <summary>
            Creates a sql select statement to retrieve the named setting
            at the date specified
            </summary>
            <param name="settingName">The setting name</param>
            <param name="date">The date</param>
            <returns>Returns a sql statement object</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.CreateUpdateStatementNoDate(System.String,System.String)">
            <summary>
            Creates a sql update statement from the name and value provided,
            with no date specified
            </summary>
            <param name="settingName">The setting name</param>
            <param name="settingValue">The value to set to</param>
            <returns>Returns a sql statement object</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.CreateInsertStatement(System.String,System.String)">
            <summary>
            Creates a sql insert statement from the name and value provided
            </summary>
            <param name="settingName">The setting name</param>
            <param name="settingValue">The value to set to</param>
            <returns>Returns a sql statement object</returns>
        </member>
        <member name="P:Habanero.DB.DatabaseSettings.TableName">
            <summary>
            Gets and sets the database table name to use to store the settings.
            The default is "settings", but the name can be altered if needed.
            </summary>
        </member>
        <member name="T:Habanero.DB.DatabaseSettings.Setting">
            <summary>
            Stores some simple settings
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.Setting.#ctor(System.DateTime,System.Object)">
            <summary>
            Constructor to initialise the setting
            </summary>
            <param name="time">The time</param>
            <param name="value">The value</param>
        </member>
        <member name="M:Habanero.DB.DatabaseSettings.Setting.IsExpired">
            <summary>
            Indicates if the stored time is more than 10 minutes old
            </summary>
            <returns>Returns true if expired, false if not</returns>
        </member>
        <member name="P:Habanero.DB.DatabaseSettings.Setting.Value">
            <summary>
            Returns the setting value held
            </summary>
        </member>
        <member name="T:Habanero.DB.DatabaseConnectionFactory">
            <summary>
            Creates new database connections, tailored to the vendor specified
            in the database access configuration
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionFactory.CreateConnection(Habanero.Base.IDatabaseConfig)">
            <summary>   
            Creates a new database connection with the configuration
            provided
            </summary>
            <param name="config">The database access configuration</param>
            <returns>Returns a new database connection</returns>
        </member>
        <member name="T:Habanero.DB.DatabaseNumberGenerator">
            <summary>
            Generates unique numbers by storing the last number generated in
            the database and then supplying a newly incremented number in the
            next request.  A database update transaction can also be generated
            to increment the number stored in the database.
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.#ctor(System.String)">
            <summary>
            Constructor to initialise a new generator. The table name is
            initialised to "numbers".
            </summary>
            <param name="settingName">The database setting name that
            stores the number</param>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise a new generator, supplying a specific
            table name
            </summary>
            <param name="settingName">The database setting name that
            stores the number</param>
            <param name="tableName">The database table name that
            stores the number</param>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.#ctor(System.String,System.String,System.Int32)">
            <summary>
            Constructor to initialise a new generator, supplying a specific
            table name and starting seed value
            </summary>
            <param name="settingName">The database setting name that
            stores the number</param>
            <param name="tableName">The database table name that
            stores the number</param>
            <param name="seedValue">The seed value to begin incrementing
            from</param>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.GetNextNumberInt">
            <summary>
            Returns the next unique number, which is incremented from the
            last generated number
            </summary>
            <returns>Returns an integer</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.Habanero#Base#IDBNumberGenerator#GetUpdateTransaction">
            <summary>
            Creates a database transaction that updates the database to the
            last number dispensed, so the next number dispensed will be a
            fresh increment
            </summary>
            <returns>Returns an ITransactional object</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.GetUpdateTransaction">
            <summary>
            Creates a database transaction that updates the database to the
            last number dispensed, so the next number dispensed will be a
            fresh increment
            </summary>
            <returns>Returns an ITransaction object</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.UpdateStateAsCommitted">
            <summary>
             Updates the business object as committed
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.UpdateAsRolledBack">
            <summary>
             updates the object as rolled back
            </summary>
        </member>
        <member name="T:Habanero.DB.DatabaseNumberGenerator.NumberUpdate">
            <summary>
            Creates an ITransactional object to update the number in the database when the number is updated.
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.NumberUpdate.#ctor(System.Int32,System.String,System.String)">
            <summary>
            Constructor to initialise a new update
            </summary>
            <param name="newNumber">The new number to store</param>
            <param name="settingName">The database setting name</param>
            <param name="tableName">The database table name</param>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.NumberUpdate.GetPersistSql">
            <summary>
            Returns the sql statement to update the number in the
            database
            </summary>
            <returns>Returns an ISqlStatementCollection containing
            the statement</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.NumberUpdate.TransactionID">
            <summary>
            </summary>
            <returns>The ID that uniquelty identifies this item of the transaction. In the case of business objects the object Id.
             for non business objects that no natural id exists for the particular transactional item a guid that uniquely identifies 
             transactional item should be generated. This is used by the transaction committer to ensure that the transactional item
             is not added twice in error.</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.NumberUpdate.UpdateStateAsCommitted">
            <summary>
             Updates the business object as committed
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseNumberGenerator.NumberUpdate.UpdateAsRolledBack">
            <summary>
             updates the object as rolled back
            </summary>
        </member>
        <member name="T:Habanero.DB.DatabaseConnectionOracle">
            <summary>
            A database connection customised for the Oracle database
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionOracle.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name and class name
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionOracle.#ctor(System.String,System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name, class name and connection string
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
            <param name="connectString">The connection string, which can be
            generated using ConnectionStringOracleFactory.CreateConnectionString()
            </param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionOracle.CreateParameterNameGenerator">
            <summary>
            Creates an <see cref="T:Habanero.Base.IParameterNameGenerator"/> for this database connection.  This is used to create names for parameters
            added to an <see cref="T:Habanero.Base.ISqlStatement"/> because each database uses a different naming convention for their parameters.
            </summary>
            <returns>The <see cref="T:Habanero.Base.IParameterNameGenerator"/> valid for this <see cref="T:Habanero.Base.IDatabaseConnection"/></returns>
        </member>
        <member name="P:Habanero.DB.DatabaseConnectionOracle.IsolationLevel">
            <summary>
            Gets the IsolationLevel to use for this connection
            </summary>
        </member>
        <member name="T:Habanero.DB.NumberGeneratorPessimisticLocking">
            <summary>
            This is a slightly more complex number generator class. This class implements a pessimistic locking strategy.
            I.e. If two users try to retrieve a number of the same type concurrently then the first user will 
            be allowed to retrieve the number and the second user will be given a locking error untill
            the first user either persists their changes, cancells their changes or times out.
            <br/>
            It is critical when using this strategy that the developer calls the NextNumber as close to the persisting
            of the objects as possible so as to ensure that the lock is held for as short a time as possible.
            This is the number generator to use when you cannot have missing numbers in the sequence i.e. you 
            cannot have invoice1 and then invoice3 with no invoice2.
            If you need a simpler number generator that implements no locking strategy then use
            NumberGenerator <see cref="T:Habanero.BO.NumberGenerator"/>
            </summary>
        </member>
        <member name="M:Habanero.DB.NumberGeneratorPessimisticLocking.#ctor(System.String)">
            <summary>
             Creates a number generator with Pesssimistic locking.
            </summary>
            <param name="numberType"></param>
        </member>
        <member name="M:Habanero.DB.NumberGeneratorPessimisticLocking.NextNumber">
            <summary>
            Returns the next number in the sequence
            </summary>
        </member>
        <member name="M:Habanero.DB.NumberGeneratorPessimisticLocking.SetSequenceNumber(System.Int64)">
            <summary>
            Proactively sets the current sequence number and persists it
            </summary>
        </member>
        <member name="M:Habanero.DB.NumberGeneratorPessimisticLocking.AddToTransaction(Habanero.Base.ITransactionCommitter)">
            <summary>
            Adds the sequence number change to the persistence transaction
            </summary>
            <param name="transactionCommitter">The transaction committer suitable
            for the persistence environment</param>
        </member>
        <member name="T:Habanero.DB.BOSequenceNumberLocking">
            <summary>
            Manages locking for sequence number control
            </summary>
        </member>
        <member name="P:Habanero.DB.BOSequenceNumberLocking.NumberType">
            <summary>
            Indicates the type of number
            </summary>
        </member>
        <member name="P:Habanero.DB.BOSequenceNumberLocking.SequenceNumber">
            <summary>
            Gets or sets the sequence number
            </summary>
        </member>
        <member name="T:Habanero.DB.BusinessObjectLoaderDB">
            <summary>
             This is an implementation of an <see cref="T:Habanero.BO.IBusinessObjectLoader"/>. This is used for loading objects from any database.
             This class implements the Loading part of the Data Mapper (165) and more specifically the metadata mapping (306) (Fowler -
             'Patterns of Enterprise Application Architecture')
            For details of what this class does, see <see cref="T:Habanero.BO.IBusinessObjectLoader"/>.
            
             All queries (including custom SelectQuery objects) run by this loader will be done using parametrized sql for 
             improved type safety, system security and performance.
             
             When loading one or more object from the datastore the Business Object loader should check to see if it is already loaded in 
             the object manager first. If the object does not exist in the object manager then it must be loaded from the datastore and added
             to the object manager <see cref="T:Habanero.BO.BusinessObjectManager"/>
            </summary>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.#ctor(Habanero.Base.IDatabaseConnection)">
            <summary>
             Creates a BusinessObjectLoaderDB. Because this is a loader the loads data from a Database, this constructor
             requires an IDatabaseConnection object to be passed to it.  This connection will be used for all loading.
            </summary>
            <param name="databaseConnection"></param>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetBusinessObject``1(Habanero.Base.IPrimaryKey)">
            <summary>
            Loads a business object of type T, using the Primary key given as the criteria
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements 
            IBusinessObject and has a parameterless constructor</typeparam>
            <param name="primaryKey">The primary key to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. 
            If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetBusinessObject(Habanero.Base.IClassDef,Habanero.Base.IPrimaryKey)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, using the Primary key given as the criteria
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="primaryKey">The primary key to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetBusinessObject``1(Habanero.Base.Criteria)">
            <summary>
            Returns the business object of the type provided that meets the search criteria.  
            An exception is thrown if more than one business object is found that matches the criteria.  
            If that situation could arise, rather use GetBusinessObjectCol.
            </summary>
            <param name="criteria">The search criteria</param>
            <returns>Returns the business object found</returns>
            <exception cref="T:Habanero.Base.Exceptions.UserException">Thrown if more than one object matches the criteria</exception>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetSelectQuery(Habanero.Base.IClassDef,Habanero.Base.IPrimaryKey)">
            <summary>
            Create a select Query based on the class definition and the primary key.
            </summary>
            <param name="classDef">The class definition.</param>
            <param name="primaryKey">The primary key of the object.</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetSelectQuery(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            Create a select Query based on the class definition and the search criteria.
            </summary>
            <param name="classDef">The class definition.</param>
            <param name="criteria">The load criteria.</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetBusinessObject``1(Habanero.Base.ISelectQuery)">
            <summary>
            Returns the business object of the type provided that meets the search criteria.  
            An exception is thrown if more than one business object is found that matches the criteria.  
            If that situation could arise, rather use GetBusinessObjectCol.
            </summary>
            <param name="selectQuery">The select query</param>
            <returns>Returns the business object found</returns>
            <exception cref="T:Habanero.Base.Exceptions.UserException">Thrown if more than one object matches the criteria</exception>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetBusinessObject(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            Returns the business object of the type provided that meets the search criteria.  
            An exception is thrown if more than one business object is found that matches the criteria.  
            If that situation could arise, rather use GetBusinessObjectCol.
            </summary>
            <param name="classDef">The class def of the business object being loaded</param>
            <param name="criteria">The load criteria of the object being loaded.</param>
            <returns>Returns the business object found</returns>
            <exception cref="T:Habanero.Base.Exceptions.UserException">Thrown if more than one object matches the criteria</exception>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetBusinessObject(Habanero.Base.IClassDef,Habanero.Base.ISelectQuery)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, 
            using the SelectQuery given. It's important to make sure that the ClassDef parameter given
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a business object
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetBusinessObject``1(System.String)">
            <summary>
            Loads a business object of type T, using the SelectQuery given. It's important to make sure that T (meaning the ClassDef set up for T)
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a business object
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteriaString">The select query to use to load from the data source</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetBusinessObject(Habanero.Base.IClassDef,System.String)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, using the criteria given
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="criteriaString">The criteria to use to load the business object must be of formst "PropName = criteriaValue" e.g. "Surname = Powell"</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an error is raised</returns>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.DoRefresh``1(Habanero.BO.BusinessObjectCollection{``0})">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="collection">The collection to refresh</param> 
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.DoRefresh(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
            <param name="collection">The collection to refresh</param>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetCount(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetLoadedBoOfSpecifiedType``1(``0,Habanero.Base.IClassDef)">
            <summary>
            loads an object of the correct sub type (for single table inheritance)
            </summary>
            <typeparam name="T"></typeparam>
            <param name="loadedBo"></param>
            <param name="correctSubClassDef"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.Refresh(Habanero.Base.IBusinessObject)">
            <summary>
            Reloads a businessObject from the datasource using the id of the object.
            A dirty object will not be refreshed from the database and the appropriate error will be raised.
            Cancel all edits before refreshing the object.
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException">Exception thrown if the object is dirty and refresh is called.</exception>
            <param name="businessObject">The businessObject to refresh</param>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetRelatedBusinessObject``1(Habanero.BO.SingleRelationship{``0})">
            <summary>
            Loads a business object of type T using the relationship given. The relationship will be converted into a
            Criteria object that defines the relationship and this will be used to load the related object.
            </summary>
            <typeparam name="T">The type of the business object to load</typeparam>
            <param name="relationship">The relationship to use to load the object</param>
            <returns>An object of type T if one was found, otherwise null</returns>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetRelatedBusinessObject(Habanero.BO.ISingleRelationship)">
            <summary>
            Loads a business object using the relationship given. The relationship will be converted into a
            Criteria object that defines the relationship and this will be used to load the related object.
            </summary>
            <param name="relationship">The relationship to use to load the object</param>
            <returns>An object of the type defined by the relationship if one was found, otherwise null</returns>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.CreateCollectionOfType(System.Type)">
            <summary>
            Creates a Generic Collection of the appropriate Typee.
            </summary>
            <param name="boType">The Type of collection to create</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.DB.BusinessObjectLoaderDB.GetCorrectSubClassDef(Habanero.Base.IBusinessObject,System.Data.IDataRecord)">
            <summary>
            Checks to see if the loaded object is the base of a single table inheritance structure
              and has a sub type
            </summary>
            <param name="bo"></param>
            <param name="dataReader"></param>
            <returns></returns>
        </member>
        <member name="P:Habanero.DB.BusinessObjectLoaderDB.DatabaseConnection">
            <summary>
            The <see cref="T:Habanero.Base.IDatabaseConnection"/> this loader is using.
            </summary>
        </member>
        <member name="T:Habanero.DB.SqlStatementBuilder">
            <summary>
             Builds a SQL Select statement for a specific database type
            </summary>
        </member>
        <member name="M:Habanero.DB.SqlStatementBuilder.#ctor(Habanero.Base.IDatabaseConnection,System.String)">
            <summary>
             Constructor for SQL Builder
            </summary>
            <param name="connection"></param>
            <param name="statement"></param>
        </member>
        <member name="M:Habanero.DB.SqlStatementBuilder.AppendCriteria(System.String)">
            <summary>
            Appends a criteria clause to the sql statement.  " WHERE " (or
            " AND " where appropriate) is automatically prefixed by this
            method.
            </summary>
            <param name="criteria">The criteria clause</param>
        </member>
        <member name="M:Habanero.DB.SqlStatementBuilder.AppendWhere">
            <summary>
            Appends " WHERE " to the sql statement, or " AND " if a
            where-clause already exists
            </summary>
        </member>
        <member name="M:Habanero.DB.SqlStatementBuilder.Append(System.String)">
            <summary>
             Appends the appendStatement to the end of the statement.
            </summary>
            <param name="appendStatement"></param>
        </member>
        <member name="M:Habanero.DB.SqlStatementBuilder.GetStatement">
            <summary>
             Returns the statement
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.DB.SqlStatementBuilder.AddJoin(System.String,System.String,System.String)">
            <summary>
             Adds a join clause to the sql statement
            </summary>
            <param name="joinType">The type of join to be created. eg. 'LEFT JOIN'</param>
            <param name="joinTable">The table to be joined to this sql statement</param>
            <param name="joinCriteria">The criteria on which the join is created</param>
        </member>
        <member name="M:Habanero.DB.SqlStatementBuilder.AddSelectFields(System.Collections.Generic.List{System.String})">
            <summary>
            Adds more fields to the select fields list in the statement.
            </summary>
            <param name="fields">The list of fields to add to the select statement</param>
        </member>
        <member name="M:Habanero.DB.SqlStatementBuilder.AppendOrderBy(System.String)">
            <summary>
            Appends an order-by clause to the sql statement. " ORDER BY " is
            automatically prefixed by this method.
            </summary>
            <param name="orderByCriteria">The order-by clause</param>
        </member>
        <member name="T:Habanero.DB.DatabaseConnectionAccess">
            <summary>
            A database connection customised for the Microsoft Access database
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionAccess.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name and class name
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionAccess.#ctor(System.String,System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name, class name and connection string
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
            <param name="connectString">The connection string, which can be
            generated using ConnectionStringAccessFactory.CreateConnectionString()
            </param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionAccess.CreateParameterNameGenerator">
            <summary>
            Creates an <see cref="T:Habanero.Base.IParameterNameGenerator"/> for this database connection.  This is used to create names for parameters
            added to an <see cref="T:Habanero.Base.ISqlStatement"/> because each database uses a different naming convention for their parameters.
            </summary>
            <returns>The <see cref="T:Habanero.Base.IParameterNameGenerator"/> valid for this <see cref="T:Habanero.Base.IDatabaseConnection"/></returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionAccess.GetLastAutoIncrementingID(System.String,System.Data.IDbTransaction,System.Data.IDbCommand)">
            <summary>
            Gets the value of the last auto-incrementing number.  This called after doing an insert statement so that
            the inserted auto-number can be retrieved.  The table name, current IDbTransaction and IDbCommand are passed
            in so that they can be used if necessary.  Note_, this must be overridden in subclasses to include support
            for this feature in different databases - otherwise a NotImplementedException will be thrown.
            </summary>
            <param name="tableName">The name of the table inserted into</param>
            <param name="tran">The current transaction, the one the insert was done in</param>
            <param name="command">The Command the did the insert statement</param>
            <returns></returns>
        </member>
        <member name="P:Habanero.DB.DatabaseConnectionAccess.IsolationLevel">
            <summary>
            Gets the IsolationLevel to use for this connection
            </summary>
        </member>
        <member name="T:Habanero.DB.ConnectionStringSqlServerFactory">
            <summary>
            Produces connection strings that are tailored for the SqlServer database
            </summary>
        </member>
        <member name="M:Habanero.DB.ConnectionStringSqlServerFactory.CheckArguments(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Checks that each of the arguments provided are valid
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <exception cref="T:System.ArgumentException">Thrown if any of the
            arguments provided are invalid</exception>
        </member>
        <member name="M:Habanero.DB.ConnectionStringSqlServerFactory.CreateConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a connection string from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
        </member>
        <member name="T:Habanero.DB.ConnectionStringAccessFactory">
            <summary>
            Produces connection strings that are tailored for the Microsoft
            Access database
            </summary>
        </member>
        <member name="M:Habanero.DB.ConnectionStringAccessFactory.CheckArguments(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Checks that each of the arguments provided are valid
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <exception cref="T:System.ArgumentException">Thrown if any of the
            arguments provided are invalid</exception>
        </member>
        <member name="M:Habanero.DB.ConnectionStringAccessFactory.CreateConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a connection string from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
        </member>
        <member name="T:Habanero.DB.ConnectionStringFirebirdFactory">
            <summary>
            Produces connection strings that are tailored for a Firebird database
            </summary>
        </member>
        <member name="M:Habanero.DB.ConnectionStringFirebirdFactory.CheckArguments(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Checks that each of the arguments provided are valid
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <exception cref="T:System.ArgumentException">Thrown if any of the
            arguments provided are invalid</exception>
        </member>
        <member name="M:Habanero.DB.ConnectionStringFirebirdFactory.CreateConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a connection string from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
        </member>
        <member name="T:Habanero.DB.SqlFormatterForAccess">
            <summary>
             Used to store specific SQL formatting information for an Access database.
             Typically databases differ in the characters used to differentiate fields and tables e.g. [ and ] for ms sql and
             ` for MySQL.
            </summary>
        </member>
        <member name="M:Habanero.DB.SqlFormatterForAccess.#ctor(System.String,System.String,System.String,System.String)">
            <summary>
             Constructor of a sql formatter
            </summary>
            <param name="leftFieldDelimiter">The left field delimiter to be used for formatting a sql statement</param>
            <param name="rightFieldDelimiter">The right field delimiter to be used for formatting a sql statement</param>
            <param name="limitClauseAtBeginning"></param>
            <param name="limitClauseAtEnd"></param>
        </member>
        <member name="M:Habanero.DB.SqlFormatterForAccess.PrepareValue(System.Object)">
            <summary>
            Prepares the value to be converted to a format appropriate for sql
            </summary>
            <param name="objValue">The value to prepare</param>
            <returns>Returns the reformatted object</returns>
        </member>
        <member name="T:Habanero.DB.DatabaseWriteException">
            <summary>
            An exception thrown when an error occurred while attempting to
            write to a database
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseWriteException.#ctor(System.String,System.String,System.String,System.String)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="userMessage">A message to users</param>
            <param name="developerMessage">A message to developers</param>
            <param name="sqlStatement">The sql statement that was used</param>
            <param name="connectString">The connection string that was used</param>
        </member>
        <member name="M:Habanero.DB.DatabaseWriteException.#ctor(System.String,System.String,System.Exception,System.String,System.String)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="userMessage">A message to users</param>
            <param name="developerMessage">A message to developers</param>
            <param name="inner">The inner exception</param>
            <param name="sqlStatement">The sql statement that was used</param>
            <param name="connectString">The connection string that was used</param>
        </member>
        <member name="M:Habanero.DB.DatabaseWriteException.#ctor">
            <summary>
            Constructor to initialise a new exception
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseWriteException.#ctor(System.String)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="message">The message to display</param>
        </member>
        <member name="M:Habanero.DB.DatabaseWriteException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="message">The message to display</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.DB.DatabaseWriteException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="info">Serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="M:Habanero.DB.DatabaseWriteException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Required for ISerializable.
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="P:Habanero.DB.DatabaseWriteException.SqlStatement">
            <summary>
            Returns the sql statement used
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseWriteException.ConnectString">
            <summary>
            Returns the connection string used
            </summary>
        </member>
        <member name="T:Habanero.DB.InsertStatementGenerator">
            <summary>
            Generates "insert" sql statements to insert a specified business
            object's properties into the database
            </summary>
        </member>
        <member name="M:Habanero.DB.InsertStatementGenerator.#ctor(Habanero.Base.IBusinessObject,Habanero.Base.IDatabaseConnection)">
            <summary>
            Constructor to initialise the generator
            </summary>
            <param name="bo">The business object whose properties are to
            be inserted</param>
            <param name="connection">A database connection</param>
        </member>
        <member name="M:Habanero.DB.InsertStatementGenerator.Generate">
            <summary>
            Generates a collection of sql statements to insert the business
            object's properties into the database
            </summary>
            <returns>Returns a sql statement collection</returns>
        </member>
        <member name="M:Habanero.DB.InsertStatementGenerator.GenerateSingleInsertStatement(Habanero.Base.IBOPropCol,System.String)">
            <summary>
            Generates an "insert" sql statement for the properties in the
            business object
            </summary>
            <param name="propsToInclude">A collection of properties to insert,
            if the previous include-all boolean was not set to true</param>
            <param name="tableName">The table name</param>
        </member>
        <member name="M:Habanero.DB.InsertStatementGenerator.InitialiseStatement(System.String,Habanero.Base.ISupportsAutoIncrementingField)">
            <summary>
            Initialises the sql statement with a autoincrementing object
            </summary>
        </member>
        <member name="M:Habanero.DB.InsertStatementGenerator.AddPropToInsertStatement(Habanero.BO.BOProp)">
            <summary>
            Adds the specified property value as a parameter
            </summary>
            <param name="prop">The business object property</param>
        </member>
        <member name="M:Habanero.DB.InsertStatementGenerator.AddParentID(Habanero.Base.IBOPropCol)">
            <summary>
            Determines which parent ID field to add to the insertion list, depending on which
            ID attribute was specified in the class definition.  There are four possibilities:
               1) The child contains a foreign key to the parent, with the parent ID's name
               2) No attribute was given, assumes the above.
               3) The child's ID has a copy of the parent's ID value
               4) The child has no ID and just inherits the parent's ID (still has the parent's
                   ID as a field in its own table)
            </summary>
        </member>
        <member name="M:Habanero.DB.InsertStatementGenerator.GetPropsToInclude(Habanero.Base.IClassDef)">
            <summary>
            Builds a collection of properties to include in the insertion,
            depending on the inheritance type.
            </summary>
        </member>
        <member name="T:Habanero.DB.InsertSqlStatement">
            <summary>
             This class inherits from <see cref="T:Habanero.DB.SqlStatement"/> and is used for inserting 
               new objects into the database. It is used because it supports the updating of 
               an autoincrementing field.
            </summary>
        </member>
        <member name="M:Habanero.DB.InsertSqlStatement.#ctor(Habanero.Base.IDatabaseConnection,System.String)">
            <summary>
            Constructor to initialise a new insert sql statement
            </summary>
            <param name="connection">The database connection used for the statement</param>
            <param name="statement">The statement in string form</param>
        </member>
        <member name="M:Habanero.DB.InsertSqlStatement.#ctor(Habanero.Base.IDatabaseConnection)">
            <summary>
            Constructor to initialise a new insert sql statement
            </summary>
            <param name="connection">The database connection used for the statement</param>
        </member>
        <member name="M:Habanero.DB.InsertSqlStatement.DoAfterExecute(Habanero.DB.DatabaseConnection,System.Data.IDbTransaction,System.Data.IDbCommand)">
            <summary>
            Provides steps to carry out after execution of the statement
            </summary>
        </member>
        <member name="P:Habanero.DB.InsertSqlStatement.TableName">
            <summary>
            The name of the table to insert into
            </summary>
        </member>
        <member name="P:Habanero.DB.InsertSqlStatement.SupportsAutoIncrementingField">
            <summary>
            Whether an auto-incrementing field is supported
            </summary>
        </member>
        <member name="T:Habanero.DB.XmlDatabaseConfig">
            <summary>
            Stores database configuration information in an XML format
            </summary>
        </member>
        <member name="M:Habanero.DB.XmlDatabaseConfig.#ctor(System.Xml.XPath.IXPathNavigable,Habanero.Base.XmlWrapper)">
            <summary>
            Constructor to initialise a new configuration
            </summary>
            <param name="node">The xml node</param>
            <param name="wrapper">The xml wrapper</param>
        </member>
        <member name="P:Habanero.DB.XmlDatabaseConfig.Vendor">
            <summary>
            Gets and sets the database vendor setting
            </summary>
        </member>
        <member name="P:Habanero.DB.XmlDatabaseConfig.Server">
            <summary>
            Gets and sets the database server setting
            </summary>
        </member>
        <member name="P:Habanero.DB.XmlDatabaseConfig.Database">
            <summary>
            Gets and sets the database name setting
            </summary>
        </member>
        <member name="P:Habanero.DB.XmlDatabaseConfig.UserName">
            <summary>
            Gets and sets the username setting
            </summary>
        </member>
        <member name="P:Habanero.DB.XmlDatabaseConfig.Password">
            <summary>
            Gets and sets the password setting
            </summary>
        </member>
        <member name="P:Habanero.DB.XmlDatabaseConfig.Port">
            <summary>
            Gets and sets the port setting
            </summary>
        </member>
        <member name="T:Habanero.DB.Database">
            <summary>
            Executes sql statements
            </summary>
        </member>
        <member name="M:Habanero.DB.Database.ExecuteSqlStatement(Habanero.DB.SqlStatement,System.Data.IDbConnection)">
            <summary>
            Executes the given sql statement using the database connection 
            provided
            </summary>
            <param name="statement">The sql statement</param>
            <param name="connection">The database connection</param>
        </member>
        <member name="M:Habanero.DB.Database.ExecuteRawSql(System.String,System.Data.IDbConnection)">
            <summary>
            Executes the sql given as a raw string, using the database
            connection provided.  It is generally preferable to use the
            ExecuteSqlStatement() method, since this provides error
            checking for the components of the sql statement that you build up.
            </summary>
            <param name="sql">The sql statement</param>
            <param name="connection">The database connection</param>
        </member>
        <member name="T:Habanero.DB.DatabaseConnectionException">
            <summary>
            An exception thrown when an error occurred while attempting to
            connect to a database
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionException.#ctor(System.String,System.String,System.String,System.String)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="userMessage">A message to users</param>
            <param name="developerMessage">A message to developers</param>
            <param name="SqlStatement">The sql statement that was used</param>
            <param name="ConnectString">The connection string that was used</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionException.#ctor(System.String,System.String,System.Exception,System.String,System.String)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="userMessage">A message to users</param>
            <param name="developerMessage">A message to developers</param>
            <param name="inner">The inner exception</param>
            <param name="SqlStatement">The sql statement that was used</param>
            <param name="ConnectString">The connection string that was used</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionException.#ctor(System.String,System.String,System.Exception,System.String)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="userMessage">A message to users</param>
            <param name="developerMessage">A message to developers</param>
            <param name="inner">The inner exception</param>
            <param name="ConnectString">The connection string that was used</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionException.#ctor">
            <summary>
            Constructor to initialise a new exception
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionException.#ctor(System.String)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="message">The message to display</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="message">The message to display</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="info">Serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionException.ToString">
            <summary>
            Returns a summary of this exception as a string
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="P:Habanero.DB.DatabaseConnectionException.SqlStatement">
            <summary>
            Returns the sql statement used
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConnectionException.ConnectString">
            <summary>
            Returns the connection string used
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseConnectionException.DeveloperMessage">
            <summary>
            Returns the message for developers
            </summary>
        </member>
        <member name="T:Habanero.DB.ConnectionStringFirebirdEmbeddedFactory">
            <summary>
            Produces connection strings that are tailored for a Firebird database
            </summary>
        </member>
        <member name="M:Habanero.DB.ConnectionStringFirebirdEmbeddedFactory.CheckArguments(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Checks that each of the arguments provided are valid
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <exception cref="T:System.ArgumentException">Thrown if any of the
            arguments provided are invalid</exception>
        </member>
        <member name="M:Habanero.DB.ConnectionStringFirebirdEmbeddedFactory.CreateConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a connection string from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
        </member>
        <member name="T:Habanero.DB.SqlStatementCollection">
            <summary>
            Manages a collection of sql statements
            </summary>
        </member>
        <member name="M:Habanero.DB.SqlStatementCollection.#ctor">
            <summary>
            Constructor to initialise a new empty collection
            </summary>
        </member>
        <member name="M:Habanero.DB.SqlStatementCollection.#ctor(Habanero.Base.ISqlStatement)">
            <summary>
            Constructor to initialise a new collection containing one
            sql statement object
            </summary>
            <param name="statement">The sql statement object</param>
        </member>
        <member name="M:Habanero.DB.SqlStatementCollection.Add(Habanero.Base.ISqlStatement)">
            <summary>
            Adds a sql statement object to the collection
            </summary>
            <param name="statement">The sql statement object</param>
        </member>
        <member name="M:Habanero.DB.SqlStatementCollection.Add(Habanero.Base.ISqlStatementCollection)">
            <summary>
            Adds the contents of another sql statement collection into this
            collection
            </summary>
            <param name="statementCollection">The other collection</param>
        </member>
        <member name="M:Habanero.DB.SqlStatementCollection.Insert(System.Int32,Habanero.Base.ISqlStatement)">
            <summary>
            Inserts a sql statement object at the position specified
            </summary>
            <param name="index">The position to insert at</param>
            <param name="sql">The sql statement object to add</param>
        </member>
        <member name="M:Habanero.DB.SqlStatementCollection.System#Collections#Generic#IEnumerable{Habanero#Base#ISqlStatement}#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Habanero.DB.SqlStatementCollection.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            
            <returns>
            An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.DB.SqlStatementCollection.Equals(System.Object)">
            <summary>
            Indicates whether a specified collection is equal in content
            and order to this one
            </summary>
            <param name="obj">A SqlStatementCollection object</param>
            <returns>Returns true if equal</returns>
        </member>
        <member name="M:Habanero.DB.SqlStatementCollection.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
             <see cref="M:System.Object.GetHashCode"></see> is suitable for use in 
             hashing algorithms and data structures like a hash table.
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.DB.SqlStatementCollection.ToString">
            <summary>
            Returns a string containing all the collection's sql statements
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="P:Habanero.DB.SqlStatementCollection.Count">
            <summary>
            Returns the count of statements in this collection
            </summary>
        </member>
        <member name="P:Habanero.DB.SqlStatementCollection.Item(System.Int32)">
            <summary>
            Provides an indexing facility so that the collection can
            be accessed like an array with square brackets
            </summary>
            <param name="index">The position in the collection</param>
            <returns>Returns the sql statement object at that position</returns>
        </member>
        <member name="T:Habanero.DB.SelectQueryDB">
            <summary>
             A class representing a Database SelectQuery.  Wraps an ISelectQuery (Decorator pattern)
            </summary>
        </member>
        <member name="M:Habanero.DB.SelectQueryDB.#ctor(Habanero.Base.ISelectQuery,Habanero.Base.IDatabaseConnection)">
            <summary>
             Creates a SelectQueryDB, wrapping an ISelectQuery (Decorator pattern)
            </summary>
            <param name="selectQuery"></param>
            <param name="databaseConnection"></param>
        </member>
        <member name="M:Habanero.DB.SelectQueryDB.CreateSqlStatement">
            <summary>
            Creates an ISqlStatement out of the SelectQuery given in the constructor, to be used to load 
            from a database
            </summary>
            <returns>An ISqlStatement that can be executed against an IDatabaseConnection</returns>
        </member>
        <member name="M:Habanero.DB.SelectQueryDB.CreateSqlStatement(Habanero.Base.ISqlFormatter)">
            <summary>
            Creates an ISqlStatement out of the SelectQuery given in the constructor, to be used to load 
            from a database
            </summary>
            <returns>An ISqlStatement that can be executed against an IDatabaseConnection</returns>
        </member>
        <member name="P:Habanero.DB.SelectQueryDB.Criteria">
            <summary>
            The Criteria to use when loading. Only objects that match these criteria will be loaded.
            </summary>
        </member>
        <member name="P:Habanero.DB.SelectQueryDB.Fields">
            <summary>
            The fields to load from the data store.
            </summary>
        </member>
        <member name="P:Habanero.DB.SelectQueryDB.Source">
            <summary>
            The source of the data. In a database query this would be the first table listed in the FROM clause.
            </summary>
        </member>
        <member name="P:Habanero.DB.SelectQueryDB.OrderCriteria">
            <summary>
            The fields to use to order a collection of objects when loading them.
            </summary>
        </member>
        <member name="P:Habanero.DB.SelectQueryDB.Limit">
            <summary>
            The number of objects to load
            </summary>
        </member>
        <member name="P:Habanero.DB.SelectQueryDB.ClassDef">
            <summary>
            The classdef this select query corresponds to. This can be null if the select query is being used
            without classdefs, but if it is built using the QueryBuilder 
            </summary>
        </member>
        <member name="P:Habanero.DB.SelectQueryDB.DiscriminatorCriteria">
            <summary>
            </summary>
        </member>
        <member name="P:Habanero.DB.SelectQueryDB.FirstRecordToLoad">
            <summary>
             Gets and sets the first record to be loaded by the select query.
            </summary>
        </member>
        <member name="T:Habanero.DB.DatabaseReadException">
            <summary>
            An exception thrown when an error occurred while attempting to
            read from a database
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseReadException.#ctor(System.String,System.String,System.String,System.String)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="userMessage">A message to users</param>
            <param name="developerMessage">A message to developers</param>
            <param name="sqlStatement">The sql statement that was used</param>
            <param name="connectString">The connection string that was used</param>
        </member>
        <member name="M:Habanero.DB.DatabaseReadException.#ctor(System.String,System.String,System.Exception,System.String,System.String)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="userMessage">A message to users</param>
            <param name="developerMessage">A message to developers</param>
            <param name="inner">The inner exception</param>
            <param name="sqlStatement">The sql statement that was used</param>
            <param name="connectString">The connection string that was used</param>
        </member>
        <member name="M:Habanero.DB.DatabaseReadException.#ctor">
            <summary>
            Constructor to initialise a new exception
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseReadException.#ctor(System.String)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="message">The message to display</param>
        </member>
        <member name="M:Habanero.DB.DatabaseReadException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="message">The message to display</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.DB.DatabaseReadException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise a new exception
            </summary>
            <param name="info">Serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="M:Habanero.DB.DatabaseReadException.ToString">
            <summary>
            Returns a summary of this exception as a string
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.DB.DatabaseReadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Required for ISerializable.
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="P:Habanero.DB.DatabaseReadException.SqlStatement">
            <summary>
            Returns the sql statement used
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseReadException.ConnectString">
            <summary>
            Returns the connection string used
            </summary>
        </member>
        <member name="P:Habanero.DB.DatabaseReadException.DeveloperMessage">
            <summary>
            Returns the message for developers
            </summary>
        </member>
        <member name="T:Habanero.DB.DatabaseConnectionAccess2007">
            <summary>
            A database connection customised for the Microsoft Access database
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionAccess2007.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name and class name
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionAccess2007.#ctor(System.String,System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name, class name and connection string
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
            <param name="connectString">The connection string, which can be
            generated using ConnectionStringAccessFactory.CreateConnectionString()
            </param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionAccess2007.CreateParameterNameGenerator">
            <summary>
            Creates an <see cref="T:Habanero.Base.IParameterNameGenerator"/> for this database connection.  This is used to create names for parameters
            added to an <see cref="T:Habanero.Base.ISqlStatement"/> because each database uses a different naming convention for their parameters.
            </summary>
            <returns>The <see cref="T:Habanero.Base.IParameterNameGenerator"/> valid for this <see cref="T:Habanero.Base.IDatabaseConnection"/></returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionAccess2007.GetLastAutoIncrementingID(System.String,System.Data.IDbTransaction,System.Data.IDbCommand)">
            <summary>
            Gets the value of the last auto-incrementing number.  This called after doing an insert statement so that
            the inserted auto-number can be retrieved.  The table name, current IDbTransaction and IDbCommand are passed
            in so that they can be used if necessary.  Note_, this must be overridden in subclasses to include support
            for this feature in different databases - otherwise a NotImplementedException will be thrown.
            </summary>
            <param name="tableName">The name of the table inserted into</param>
            <param name="tran">The current transaction, the one the insert was done in</param>
            <param name="command">The Command the did the insert statement</param>
            <returns></returns>
        </member>
        <member name="P:Habanero.DB.DatabaseConnectionAccess2007.IsolationLevel">
            <summary>
            Gets the IsolationLevel to use for this connection
            </summary>
        </member>
        <member name="T:Habanero.DB.ConnectionStringPostgreSqlFactory">
            <summary>
            Produces connection strings that are tailored for the PostgreSql database
            </summary>
        </member>
        <member name="M:Habanero.DB.ConnectionStringPostgreSqlFactory.CheckArguments(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Checks that each of the arguments provided are valid
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
        </member>
        <member name="M:Habanero.DB.ConnectionStringPostgreSqlFactory.CreateConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a connection string from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
            <exception cref="T:System.ArgumentException">Thrown if any of the
            arguments provided are invalid</exception>
        </member>
        <member name="T:Habanero.DB.ConnectionStringAccess2007Factory">
            <summary>
            Produces connection strings that are tailored for the Microsoft
            Access database
            </summary>
        </member>
        <member name="M:Habanero.DB.ConnectionStringAccess2007Factory.CheckArguments(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Checks that each of the arguments provided are valid
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <exception cref="T:System.ArgumentException">Thrown if any of the
            arguments provided are invalid</exception>
        </member>
        <member name="M:Habanero.DB.ConnectionStringAccess2007Factory.CreateConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a connection string from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
        </member>
        <member name="T:Habanero.DB.SqlFormattingHelper">
            <summary>
            Provides some additional utilities for sql statement generators
            </summary>
        </member>
        <member name="M:Habanero.DB.SqlFormattingHelper.FormatTableName(System.String,Habanero.Base.IDatabaseConnection)">
            <summary>
            Formats the table name correctly using field delimiters
            </summary>
            <param name="tableName">The name of the table</param>
            <param name="connection">The connection used</param>
            <returns>Returns the formatted string</returns>
        </member>
        <member name="M:Habanero.DB.SqlFormattingHelper.FormatFieldName(System.String,Habanero.Base.IDatabaseConnection)">
            <summary>
            Formats the field name correctly using field delimiters
            </summary>
            <param name="fieldName">The name of the table</param>
            <param name="connection">The connection used</param>
            <returns>Returns the formatted string</returns>
        </member>
        <member name="M:Habanero.DB.SqlFormattingHelper.FormatTableAndFieldName(System.String,System.String,Habanero.Base.IDatabaseConnection)">
            <summary>
            Formats the table and field name correctly using field delimiters if necessary
            </summary>
            <param name="tableName">The name of the table</param>
            <param name="fieldName">The name of the field</param>
            <param name="connection">The connection used</param>
            <returns>Returns the formatted string</returns>
        </member>
        <member name="T:Habanero.Base.SourceDB">
            <summary>
            Represents a database source from which data is retrieved
            </summary>
        </member>
        <member name="M:Habanero.Base.SourceDB.#ctor(Habanero.Base.Source)">
            <summary>
             Constructor for SourceDB
            </summary>
            <param name="source"></param>
        </member>
        <member name="M:Habanero.Base.SourceDB.CreateSQL">
            <summary>
            Creates the SQL that corresponds to this join
            </summary>
        </member>
        <member name="M:Habanero.Base.SourceDB.CreateSQL(Habanero.Base.ISqlFormatter)">
            <summary>
            Creates the Sql that corresponds to this join
            </summary>
            <param name="sqlFormatter">The formatter used to construct the appropriate Sql</param>
        </member>
        <member name="P:Habanero.Base.SourceDB.Name">
            <summary>
            Gets and sets the name of the source
            </summary>
        </member>
        <member name="P:Habanero.Base.SourceDB.EntityName">
            <summary>
            Gets and sets the entity name of the source
            </summary>
        </member>
        <member name="P:Habanero.Base.SourceDB.Joins">
            <summary>
            Gets the list of joins that make up the source
            </summary>
        </member>
        <member name="P:Habanero.Base.SourceDB.InheritanceJoins">
            <summary>
            Gets the list of joins that create one source through inheritance
            </summary>
        </member>
        <member name="T:Habanero.DB.ConnectionStringMySqlFactory">
            <summary>
            Produces connection strings that are tailored for the MySql database
            </summary>
        </member>
        <member name="M:Habanero.DB.ConnectionStringMySqlFactory.CheckArguments(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Checks that each of the arguments provided are valid
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
        </member>
        <member name="M:Habanero.DB.ConnectionStringMySqlFactory.CreateConnectionString(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a connection string from the arguments provided
            </summary>
            <param name="server">The database server</param>
            <param name="database">The database name</param>
            <param name="userName">The userName</param>
            <param name="password">The password</param>
            <param name="port">The port</param>
            <returns>Returns the connection string</returns>
            <exception cref="T:System.ArgumentException">Thrown if any of the
            arguments provided are invalid</exception>
        </member>
        <member name="T:Habanero.DB.DatabaseConnectionSQLite">
            <summary>
            A database connection customised for the SQLite database
            </summary>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionSQLite.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name and class name
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionSQLite.#ctor(System.String,System.String,System.String)">
            <summary>
            Constructor to initialise the connection object with an
            assembly name, class name and connection string
            </summary>
            <param name="assemblyName">The assembly name</param>
            <param name="className">The class name</param>
            <param name="connectString">The connection string, which can be
            generated using ConnectionStringSqlServerFactory.CreateConnectionString()
            </param>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionSQLite.GetLastAutoIncrementingID(System.String,System.Data.IDbTransaction,System.Data.IDbCommand)">
            <summary>
            Gets the value of the last auto-incrementing number.  This called after doing an insert statement so that
            the inserted auto-number can be retrieved.  The table name, current IDbTransaction and IDbCommand are passed
            in so that they can be used if necessary.  
            </summary>
            <param name="tableName">The name of the table inserted into</param>
            <param name="tran">The current transaction, the one the insert was done in</param>
            <param name="command">The Command the did the insert statement</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.DB.DatabaseConnectionSQLite.CreateParameterNameGenerator">
            <summary>
            Creates an <see cref="T:Habanero.Base.IParameterNameGenerator"/> for this database connection.  This is used to create names for parameters
            added to an <see cref="T:Habanero.Base.ISqlStatement"/> because each database uses a different naming convention for their parameters.
            </summary>
            <returns>The <see cref="T:Habanero.Base.IParameterNameGenerator"/> valid for this <see cref="T:Habanero.Base.IDatabaseConnection"/></returns>
        </member>
        <member name="P:Habanero.DB.DatabaseConnectionSQLite.IsolationLevel">
            <summary>
            SQLLite uses the Serializable IsolationLevel.
            </summary>
        </member>
    </members>
</doc>
